2012-05-04 52 views
2

我有這樣一段代碼:媒體播放器拋出復位錯誤(-38,0)() - 和prepareAsync() - 調用

try 
     { 
      mMusicPlayer.reset(); 
      FileInputStream fis = new FileInputStream(pathToTitleFile); 
      mMusicPlayer.setDataSource(fis.getFD()); 
      mMusicPlayer.prepareAsync(); 
     } 
     catch (Exception e){} 

當我跳過一首歌,有時我得到兩個錯誤/錯誤(-38,0)。 我調試了它,並在以下代碼部分引發了錯誤: reset() - 調用之後的錯誤(-38,0)。 prepareAsync() - 調用後的錯誤(-38,0)。 此後,玩家調用onPrepare() - 回調並跳回,並再次執行try-block。在播放歌曲之前,這會重複幾次。 奇怪的是,我沒有得到關於錯誤和錯誤(-38,0)的任何其他信息,似乎是「通用錯誤」。

回答

0

這裏基於MediaPlayer reset

重置在MediaPlayer其未初始化的狀態。調用此方法後,必須通過設置數據源並調用prepare()來重新初始化它。

您需要重新初始化MediaPlayer。

+0

從MediaPlayer類: 調用setDataSource(FileDescriptor)或setDataSource(String)或setDataSource(Context,Uri)或setDataSource(FileDescriptor,long,long)將處於空閒狀態的MediaPlayer對象傳輸到初始化狀態。 ...和我一樣。 :) – user993441

+0

我應該提到,每個跳過都不會發生錯誤。大多數它是完美的。 – user993441

+2

你知道了嗎? –

相關問題