2010-05-26 58 views
0

我一直在努力與我們心愛的MediaPlayer類相當多... 具體而言,我只想播放一些文件中的聲音... 我得到兩種特定類型實際的錯誤,而不是continuesly但它似乎是隨機的......有時10文件播放沒有錯誤分辯了,那麼MediPlayer似乎停止接受其他文件... 確定的第一個錯誤:關於IllegalStateExceptions,MediaPlayer,準備失敗和狀態碼

- 05-26 15:02:00.916: ERROR/MediaPlayer(25793): error (1, -4) 
- 05-26 15:02:00.916: ERROR/setupplayer(25793): java.io.IOException: Prepare failed.: status=0x1 

那麼對於這一個我已經看到了幾種解決方案: 使用

mp.setDataSource(ins.getFD()); (with ins being an inputstream to my File) 

和/或使用

mp.setDataSource(ins.getFD(), 0, f.length()); 

兩個不幸的是解決不了的問題,我只想愛知道什麼是非常詳盡的錯誤(1,-4)是...在哪裏我可以找到MediaPlayer的州的代碼嗎? 我也使用prepareAsync(),而不是準備(),但說實話它似乎並沒有做任何差別都試過.. 第二個錯誤是它引發的異常:

05-26 15:17:30.456: ERROR/playNextPlayer(27303): Error caught : java.lang.IllegalStateException 

哪我想可能與第一個錯誤/問題有關?

+0

虎喜的State Diagram發佈您的代碼 – Jorgesys 2010-05-28 00:10:24

+1

播放10個文件?你確定你不想使用'SoundPool'嗎? – 2010-05-28 00:18:00

+0

不用謝了,這10個文件是從網上動態下載的,它們可能在30秒到30分鐘之間,我的理解是SoundPool只是一個很好的選擇,如果它適用於較短的預裝遊戲類型的聲音? – TiGer 2010-05-28 12:05:26

回答

0

嘗試mp.setDataSource(String path) 例如,mp.setDataSource("sdcard/1.mp3");

這個錯誤是因爲不正確的路徑或的FileDescriptor的到來。

您應該檢查媒體播放器類

相關問題