我正在努力让现场广播流在Android上运行。我正在使用MediaPlayer
类,只是设置URL并播放它。它在大多数情况下效果很好,但是在5-30分钟后它不可避免地会死亡。在2.1手机(更具体地说是英雄)上我得到了这个日志输出
W/MediaPlayer( 7919): info/warning (1, 26)
I/MediaPlayer( 7919): Info (1,26)
I/MediaStreamService( 7919): mPlayer info code:1 extra:26
E/MediaPlayer( 7919): error (1, -11)
E/MediaPlayer( 7919): Error (1,-11)
MediaStreamService
是我的包含MediaPlayer
的服务的地方,输出来自OnInfoListener
在2.2手机上我没有得到OnInfoListener
回调,流就死了。但我确实在logcat中看到了这一点
E/HTTPStream( 1020): recv failed, errno = 11 (Try again)
E/HTTPDataSource( 1020): retrying connection failed
尽管有不断的logcat垃圾邮件
,似乎在我的1.6手机上完美运行E/PlayerDriver( 82): Invalid percentage value <big growing number>
我的问题是,错误代码(1,26)是什么意思?是什么导致我的mediaPlayer崩溃? 2.1问题是否与2.2问题有关? 谢谢, 森
修改:我在查看源代码OnInfoListener
并找到public static final int MEDIA_INFO_UNKNOWN = 1;
我不确定它究竟意味着什么,也无法找到这些额外内容的保存位置。任何媒体信息未知的含义是什么?或者这26代表什么将非常感激。
答案 0 :(得分:31)
我的问题是,错误代码(1,26)是什么意思?
错误是-11,表示PVMFErrTimeout。您可以在此处查看定义文件link text
答案 1 :(得分:0)
也许是RDS数据? 你手动设置缓冲区大小吗?
答案 2 :(得分:0)
要开始播放,必须调用start()。 start()成功返回后,MediaPlayer对象处于Started状态。可以调用isPlaying()来测试MediaPlayer对象是否处于Started状态。
当处于Started状态时,如果事先通过setOnBufferingUpdateListener(OnBufferingUpdateListener)注册了OnBufferingUpdateListener,则内部播放器引擎会调用用户提供的OnBufferingUpdateListener.onBufferingUpdate()回调方法。此回调允许应用程序在流式传输音频/视频时跟踪缓冲状态。
调用start()对已处于已启动状态的MediaPlayer对象没有影响。
也许这是回应的一部分。