我编写了一个媒体应用程序,该应用程序使用http连接流式传输MP3.这在Android版本2.x-4.x上一直很好用,但现在在5.x中产生错误.该应用程序循环播放包含MP3的播放列表对象,每个对象都有其自己的唯一http地址.第一个文件流很好,但是在调用prepareAsync()时,下一个文件(与哪个文件无关)会产生以下错误:
07-04 18:57:19.785 65-10860/? E/NuCachedSource2﹕ source returned error -1, 10 retrIEs left07-04 18:57:22.874 65-10860/? E/NuCachedSource2﹕ source returned error -1, 9 retrIEs left07-04 18:57:25.907 65-10860/? E/NuCachedSource2﹕ source returned error -1, 8 retrIEs left07-04 18:57:28.929 65-10860/? E/NuCachedSource2﹕ source returned error -1, 7 retrIEs left07-04 18:57:31.972 65-10860/? E/NuCachedSource2﹕ source returned error -1, 6 retrIEs left07-04 18:57:35.024 65-10860/? E/NuCachedSource2﹕ source returned error -1, 5 retrIEs left07-04 18:57:38.062 65-10860/? E/NuCachedSource2﹕ source returned error -1, 4 retrIEs left07-04 18:57:41.085 65-10860/? E/NuCachedSource2﹕ source returned error -1, 3 retrIEs left07-04 18:57:44.110 65-10860/? E/NuCachedSource2﹕ source returned error -1, 2 retrIEs left07-04 18:57:47.262 65-10860/? E/NuCachedSource2﹕ source returned error -1, 1 retrIEs left07-04 18:57:50.294 65-10860/? E/NuCachedSource2﹕ source returned error -1, 0 retrIEs left07-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),在此过程再次开始.
为什么棒棒糖的MediaPlayer抛出此错误?
解决方法:
看起来像setDataSource(string)方法,该方法用于使用AndroID的早期版本自动编码传入的URL,但不再在v5.x中使用.发生错误是因为Web服务器返回http 404 Not Found.当我在将URL传递给setDataSource()之前对URL进行编码时,它可以工作.
更令人困惑的是,我的应用对URL的编码不一致,因此有时它可以工作,而有时却没有.
总结以上是内存溢出为你收集整理的Android 5.0(Lollipop)中的MediaPlayer抛出错误全部内容,希望文章能够帮你解决Android 5.0(Lollipop)中的MediaPlayer抛出错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)