我正试图以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(安卓2.3.4)上测试它
感谢任何建议
而不是您的代码
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/*");
在意图中设置错误的mime类型时的常见错误以本例为例,检查播放mp3音频的是否为audio/mp3
Uri data = Uri.parse("file:///sdcard/abc_xyz.mp3");
intent.setDataAndType(data,"audio/mp3");
startActivity(intent);