【发布时间】:2018-06-12 04:02:51
【问题描述】:
我编写了一个使用 HTTP 连接流式传输 MP3 的媒体应用程序。这在 Android 版本 2.x - 4.x 上运行良好,但现在在 5.x 中产生错误。该应用程序循环播放包含 MP3 的播放列表对象,每个 MP3 都有自己唯一的 HTTP 地址。第一个文件流正常,但下一个文件(不管 哪个 文件)在调用 prepareAsync() 时会产生以下错误:
07-04 18:57:19.785 65-10860/? E/NuCachedSource2﹕ source returned error -1, 10 retries left
07-04 18:57:22.874 65-10860/? E/NuCachedSource2﹕ source returned error -1, 9 retries left
07-04 18:57:25.907 65-10860/? E/NuCachedSource2﹕ source returned error -1, 8 retries left
07-04 18:57:28.929 65-10860/? E/NuCachedSource2﹕ source returned error -1, 7 retries left
07-04 18:57:31.972 65-10860/? E/NuCachedSource2﹕ source returned error -1, 6 retries left
07-04 18:57:35.024 65-10860/? E/NuCachedSource2﹕ source returned error -1, 5 retries left
07-04 18:57:38.062 65-10860/? E/NuCachedSource2﹕ source returned error -1, 4 retries left
07-04 18:57:41.085 65-10860/? E/NuCachedSource2﹕ source returned error -1, 3 retries left
07-04 18:57:44.110 65-10860/? E/NuCachedSource2﹕ source returned error -1, 2 retries left
07-04 18:57:47.262 65-10860/? E/NuCachedSource2﹕ source returned error -1, 1 retries left
07-04 18:57:50.294 65-10860/? E/NuCachedSource2﹕ source returned error -1, 0 retries left
07-04 18:57:50.419 65-10857/? E/GenericSource﹕ Failed to init from data source!
07-04 18:57:50.428 9592-9758/net.kicksass.shootingstarbbs.streamstar E/MediaPlayer﹕ error (1, -2147483648)
07-04 18:57:50.429 9592-9592/net.kicksass.shootingstarbbs.streamstar E/MediaPlayer﹕ Error (1,-2147483648)
一般来说,应用程序调用 MediaPlayer 的 setDataSource(url),然后是 prepareAsync(),然后等待 onPreparedListener 触发,然后调用 start() 开始流式传输。流式传输完成后,它调用reset(),然后调用setDataSource(url),流程再次开始。
为什么 Lollipop 的 MediaPlayer 会抛出这个错误?
【问题讨论】:
-
由于涉及到侦听器、被调用的方法等,因此要发布很多代码。我试图按照它们的顺序总结我正在调用的 MediaPlayer 方法叫。我希望其他人已经看到了这些错误并找到了解决方案,否则我将不得不开始试验。
标签: android android-mediaplayer