【发布时间】:2018-02-07 03:10:08
【问题描述】:
我需要在我的项目中播放音频文件。
我试试这段代码,它在 android 5.0 上工作,但在 7.0 上不工作。
String url = "http://sites.google.com/site/ubiaccessmobile/sample_audio.amr";
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.prepare() 抛出错误 java.io.IOException:准备失败。:状态=0x1
如果我在资源中使用音频文件,则此代码可以完美运行。 但流媒体没有。
我在另一个线程中尝试 prepareAsync()、prepare()。但同样的错误存在。 当然,我使用 try-catch。
我认为是运行时许可,但这个应用程序只需要 INTERNET。而且它不需要运行时权限。
我能做什么?? android 7.0 不能使用流音频???
请告诉我问题或其他库。
我解决了....? 我不知道这到底是什么,如果我使用另一种音频格式——比如 mp3、m4a——这段代码可以完美运行。 为什么android 7.0讨厌amr文件???
【问题讨论】:
-
我认为你没有设置从Android 6.0引入的运行时权限。希望有帮助!
-
我也认为许可。但是什么许可?我认为这个应用程序只需要 INTERNET 许可,它不需要运行时许可,不是吗?
-
“运行时权限”是从 Android 6.0 开始设置/启用权限的方式。检查此链接:developer.android.com/training/permissions/requesting.html
-
我读过。但是“INTERNET”许可不是“危险”许可,因为它不需要运行时。不是吗?