2

我的 SD 卡中的 AMR 文件很少。我想使用默认的 android 音乐播放器播放这些 amr 文件。TODO这个,我试过下面的代码:

        Uri myUri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath() + "/myfiles/filename.amr");
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
    intent.setDataAndType(myUri, "audio/*");
    startActivity(intent);

和我的堆栈跟踪:

07-16 15:23:47.284: D/Instrumentation(32496): checkStartActivityResult :Intent { act=android.intent.action.VIEW dat=/storage/emulated/0/myfiles/filename.amr typ=audio/* }
07-16 15:23:47.284: D/Instrumentation(32496): checkStartActivityResult inent is instance of inent: 07-16 15:23:47.284: D/AndroidRuntime(32496): Shutting down VM
07-16 15:23:47.284: W/dalvikvm(32496): threadid=1: thread exiting with uncaught exception (group=0x414feac8)
07-16 15:23:47.304: E/AndroidRuntime(32496): FATAL EXCEPTION: main
07-16 15:23:47.304: E/AndroidRuntime(32496): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/storage/emulated/0/myfiles/filename.amr typ=audio/* }
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1659)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1434)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.Activity.startActivityForResult(Activity.java:3430)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.Activity.startActivityForResult(Activity.java:3391)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.Activity.startActivity(Activity.java:3626)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.Activity.startActivity(Activity.java:3594) 07-16 15:23:47.304: E/AndroidRuntime(32496): at com.example.ui.MainActivity.onItemClick(MainActivity.java:85)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.widget.AdapterView.performItemClick(AdapterView.java:301)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.widget.AbsListView.performItemClick(AbsListView.java:1502)
07-16 15:23:47.304: E/AndroidRuntime(32496): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3250) 07-16 15:23:47.304: E/AndroidRuntime(32496): at android.widget.AbsListView$1.run(AbsListView.java:4299) 07-16 15:23:47.304: E/AndroidRuntime(32496): at android.os.Handler.handleCallback(Handler.java:725) 07-16 15:23:47.304: E/AndroidRuntime(32496): at android.os.Handler.dispatchMessage(Handler.java:92) 07-16 15:23:47.304: E/AndroidRuntime(32496): at android.os.Looper.loop(Looper.java:137) 07-16 15:23:47.304: E/AndroidRuntime(32496): at android.app.ActivityThread.main(ActivityThread.java:5227)
07-16 15:23:47.304: E/AndroidRuntime(32496): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 15:23:47.304: E/AndroidRuntime(32496): at java.lang.reflect.Method.invoke(Method.java:511) 07-16 15:23:47.304: E/AndroidRuntime(32496): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 07-16 15:23:47.304: E/AndroidRuntime(32496): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 07-16 15:23:47.304: E/AndroidRuntime(32496): at dalvik.system.NativeStart.main(Native Method)

我怎样才能做到这一点?当这个 amr 在文件管理器中打开时,它会显示一个对话框来选择可用的音乐播放器并开始播放。我想要实现的同样的事情。

我的目标是在我的应用程序中弹出这个

4

1 回答 1

0

尝试将 mimeType 设置为“audio/amr”而不是“audio/*”。可能您还必须执行 "file://" + Environment.getExternalStorageDirectory()

请参阅此处:我无法打开本机播放器播放录制文件的问题是什么?

于 2014-01-22T10:31:23.460 回答