2010-10-04 71 views
18

我正在努力获得一个实时无线电流在Android上工作。我正在使用MediaPlayer类,只是设置URL并播放它。它在大部分情况下效果很好,但在5到30分钟后它不可避免地死亡。在2.1手机(更具体地说英雄)我得到这个日志输出Android MediaPlayer错误代码?

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 

似乎对我的1.6手机尽管

E/PlayerDriver(82): Invalid percentage value <big growing number> 

我的问题是不断logcat的垃圾邮件,什么做错误代码工作得很好(1,26)意思?什么导致我的mediaPlayer崩溃? 2.1问题是否与2.2问题有关? 谢谢, 弥敦道

编辑:我一直在寻找的源代码,以OnInfoListener,发现public static final int MEDIA_INFO_UNKNOWN = 1; 我不知道到底是什么意思,并不能找到这些地方额外保持要么..上的任何见解媒体信息未知意味着什么?或者这26代表什么将非常赞赏。

回答

29

我的问题是,错误代码(1,26)是什么意思?

  • 26意味着PVMFInfoErrorHandlingStart,只是一个错误指示

该错误是-11,这意味着PVMFErrTimeout。你可以在这里查看定义文件link text

+0

感谢您的链接! – schwiz 2010-10-12 18:55:16

+12

链接已损坏。你可以在[这里]找到它(https:// github。COM /机器人/ platform_external_opencore /斑点/主/ pvmi/PVMF /包含/ pvmf_return_codes.h) – efeyc 2011-10-05 07:11:01

0

也许RDS数据? 你是否手动设置你的缓冲区大小?

+0

有没有办法在'MediaPlayer'上设置缓冲区大小我可能错过了。 – schwiz 2010-10-08 00:58:28

+1

它似乎有一个观看缓冲区状态的事件:http://developer.android.com/reference/android/media/MediaPlayer.html – ykatchou 2010-10-08 07:34:36

0

要开始播放,必须调用start()。在start()成功返回后,MediaPlayer对象处于Started状态。可以调用isPlaying()来测试MediaPlayer对象是否处于Started状态。

处于Started状态时,如果通过setOnBufferingUpdateListener(OnBufferingUpdateListener)事先注册了OnBufferingUpdateListener,则内部播放器引擎会调用用户提供的OnBufferingUpdateListener.onBufferingUpdate()回调方法。此回调允许应用程序在流式传输音频/视频时跟踪缓冲状态。

调用start()对已处于Started状态的MediaPlayer对象没有影响。

也许它是响应的一部分。

+0

OnBufferingUpdate不会在具有此流的2.2设备上调用,因为文件大小是未知。 (无尽的大小它的电台流) – schwiz 2010-10-08 17:47:38