Воспроизведение аудио с намерения - ActivityNotFoundException - PullRequest
2 голосов
/ 13 февраля 2012

Я пытаюсь воспроизвести аудио с намерением ACTION_VIEW, но независимо от того, какой тип звукового файла (.mp3, .3gpp и т. Д.), Я всегда получаю одну и ту же ошибку:

E/AndroidRuntime(3007): android.content.ActivityNotFoundException: No Activity found to        handle Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/recording-23363382.3gpp typ=audio/3gpp }

Мой код:

Во-первых, вот где я запускаю действие:

    case R.id.largeThumbnailText:
        media_column_index = mediacursor
                .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
        mediacursor.moveToPosition(lastClicked);
        mediaFileUri = Uri.parse(mediacursor.getString(media_column_index));
        media_column_index = mediacursor
                .getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE);
        String mime = mediacursor.getString(media_column_index);
        Intent playAudioIntent = new Intent();
        playAudioIntent.setAction(Intent.ACTION_VIEW);
        playAudioIntent.setDataAndType(mediaFileUri, mime);
        startActivity(playAudioIntent);
        break;

Здесь я инициирую медиакурсор:

        String[] proj = { MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.DISPLAY_NAME,
                MediaStore.Audio.Media.MIME_TYPE };
        mediacursor = getActivity().managedQuery(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null,
                null, null);

Я делаю то же самое с видео, поэтомуЯ не вижу, где проблема.Стоит упомянуть, что все это делается из фрагмента.

Забыл упомянуть, что я тестирую его на HTC Sensation (Android 2.3.4)

Цените любые предложения

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Вместо вашего кода

Intent playAudioIntent = new Intent();
playAudioIntent.setAction(Intent.ACTION_VIEW);
playAudioIntent.setDataAndType(mediaFileUri, mime);
startActivity(playAudioIntent);

Попробуйте что-то вроде этого:

String movieurl = Environment.getExternalStorageDirectory() + "/Videos/Wildlife.wmv";

Intent playAudioIntent = new Intent(Intent.ACTION_VIEW);
playAudioIntent .setDataAndType(Uri.parse(movieurl), "video/*");
0 голосов
/ 13 февраля 2012

распространенная ошибка при установке неправильного типа пантомимы в намерении. В этом примере проверьте, является ли audio/mp3 для воспроизведения mp3-аудио

.
Uri data = Uri.parse("file:///sdcard/abc_xyz.mp3");
intent.setDataAndType(data,"audio/mp3"); 
startActivity(intent);
...