Android 从intent播放音频-ActivityNotFoundException

Android 从intent播放音频-ActivityNotFoundException,android,audio,mediastore,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=

我试图播放带有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;
这是我启动mediacursor的地方:

        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轰动(android 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);

谢谢你,这很有效。但它是否适用于所有音频格式?你知道为什么有必要这样播放音频吗?我不知道为什么有必要这样做。您是否尝试过使用MediaPlayer类播放音乐?通常要播放音乐,我会扩展应用程序类并在其中创建MediaPlayer对象。然后我创建了使用MediaPlayer的方法。如果您想让我向您展示如何使用MediaPlayer,请问另一个问题“我如何通过扩展应用程序类来使用MediaPlayer”,我可以发布整个示例。另外,如果你打算这样做,请发送链接给我。我直接从mediastore中提取mime类型,我不知道它怎么可能是错误的,或者你的意思是手机本身不知道正确的mime类型?我也尝试过“audio/*”,但运气不佳:intent.setDataAndType(data,“audio/*”);