2011-04-07 29 views
0

我對Android中的MediaPlayer對象有點麻煩。具體來說,我試圖從一個URL播放m4a文件。表面上看起來工作正常,包括正確播放音頻文件。然而,在我的logcat中,我正在獲得穩定的運行時異常流。特別是:「BroadcastReceiver試圖在無序廣播期間返回結果」MediaPlayer BroadcastReceiver RuntimeException

我對此感到困惑,因爲我從未在代碼中的任何地方設置過broadcastreceiver。我的完整的源代碼如下:

public class homeActivity extends Activity { 
    private MediaPlayer player; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     player = new MediaPlayer(); 
     try { 
      player.setDataSource("http://www.promoshuffle.com/fantrailTest/sample.m4a"); 
      player.prepare(); 
     } catch (IllegalArgumentException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     player.start(); 
    } 
} 

僅供參考,我調試一個Motorolla的Atrix,正如我上面所說的,音頻的實際播放正常。如果任何人有任何想法可能會導致這種異常,我會非常感激!提前致謝。

Avtar

回答

0

如果錯誤不是從你的原代碼,那麼也許你沒有什麼可擔心的。

話雖如此,嘗試使用prepareAysnc()而不是prepare()。

您需要實現MediaPlayer.OnPreparedListener並在onPrepared()方法中調用player.start()。

+0

嗯,我嘗試了prepareAsync,但它似乎沒有幫助。這就是說,它不會導致任何其他明顯的問題,所以我認爲我不必擔心。感謝您的輸入! – akhalsa 2011-04-07 21:49:41