Question

Je veux lire un fichier vidéo enregistré pour être lu dans le MediaPlayer de Android.Je veux appeler le lecteur multimédia à travers l'intention et vouloir lire le fichier correspondant de l'urui transcédent. Quand j'essayais je reçois unEXCEPTION ACTIVITÉNOTENDFOND quelqu'un peut-il m'aider avec un code.

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        if (resultCode == RESULT_OK) {
            if (requestCode == REQUEST_VIDEO_CAPTURED) {
                uriVideo = data.getData();
                Toast.makeText(VedioRecording.this, uriVideo.getPath(),
                        Toast.LENGTH_LONG).show();
            }
        } else if (resultCode == RESULT_CANCELED) {
            uriVideo = null;
            Toast.makeText(VedioRecording.this, "Cancelled!", Toast.LENGTH_LONG)
                    .show();
        }
        if (requestCode == 2) {
            selectedImageUri = data.getData();

            // OI FILE Manager
            filemanagerstring = selectedImageUri.getPath();

            // MEDIA GALLERY
            selectedImagePath = getPath(selectedImageUri);

            Intent intent1 = new Intent(android.provider.MediaStore.INTENT_ACTION_MUSIC_PLAYER).setData(selectedImageUri);

            startActivityForResult(intent1, 3);
//          videoviewPlay.setVideoURI(selectedImageUri);
//          videoviewPlay.start();
        }
        if (requestCode == 3) {

        }
    }


    private String getPath(Uri uri) {
        String[] projection = { MediaStore.Video.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        if (cursor != null) {
            // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
            // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
            int column_index = cursor
                    .getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        } else {
            return null;
        }
    }
}

Ceci est mon code, je reçois une exception d'activitéNotfound

Était-ce utile?

La solution

Le scénario le plus courant dans lequel vous obtenez une exception d'activitéNotFound est lorsque vous essayez de lancer une activité que vous avez créée sans le déclarer dans le manifeste.

Postez votre code que vous utilisez pour lancer l'activité pour être sûr. Si vous essayez d'utiliser une activité qui devrait être fournie par le cadre à l'extérieur de votre application, vous pouvez simplement configurer l'intention de manière incorrecte

Mise à jour après le code posté ...

Votre code semble utiliser l'intention action intente_action_music_player et transmettre une URL d'image sous forme de données (est-ce le chemin d'accès à une image ou que vos variables sont simplement surmontées?). Vous obtenez une activitéNotFoundException parce que le système n'a pas d'intention de récepteurs enregistrés pour gérer ce scénario. En outre, si vous regardez la documentation de cette constante, vous verrez qu'ils l'ont marqué de l'être obsolète à un moment donné:

http://developer.android.com/reference/andrroid/ Fournisseur / MediaStore.html # Intention_action_MUSIC_Player

J'utiliserais normalement l'intention.action_view et transmettez un type MIME avec les données. Quelque chose comme ce qui suit ...

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(pathToVideoFile), "video/*");
startActivity(intent);

En passant le type MIME de "Vidéo / *" à SetDataAndType, vous êtes plus spécifique avec votre demande au système.

Si vous souhaitez interroger le système pour savoir si une intention peut être traitée (ce qui signifie que le périphérique de l'utilisateur exécutant votre code a une activité enregistrée pouvant gérer l'intention), vous pouvez utiliser la méthode PackAgemanager.QueryTenctivités:

QueryIntentaillyCitivités

Autres conseils

String extension = MimeTypeMap
                        .getFileExtensionFromUrl(selectedImagePath);
                String mimeType = MimeTypeMap.getSingleton()
                        .getMimeTypeFromExtension(extension);
                Intent mediaIntent = new Intent(Intent.ACTION_VIEW);
                mediaIntent.setDataAndType(Uri.parse(selectedImagePath),
                        mimeType);
                startActivity(mediaIntent);

C'est le code qui m'a aidé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top