从意图播放音频 - ActivityNotFoundException

时间:2012-02-12 21:45:03

标签: android audio mediastore

我正在尝试使用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 个答案:

答案 0 :(得分:1)

而不是你的代码

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/*");

答案 1 :(得分:0)

在意图中设置错误的mime类型时的常见错误请参阅此示例,检查是否audio/mp3播放mp3音频

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