2010-10-04 72 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