2014-01-24 72 views

回答

2

嘗試用下面的代碼:

MediaPlayer mp = new MediaPlayer(); 
... 
... 
if(mp.isPlaying()) 
    //YOU LOGIC IF PLAYER IS PLAYING 
else 
    //YOU LOGIC IF PLAYER IS NOT PLAYING 

參考鏈接:http://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying()

希望它會幫助你..

+0

在圖表http://developer.android.com/reference/android/media/MediaPlayer.html#StateDiagram中,我認爲當isPlaying()爲false時,我們仍然無法區分Prepared和Stopped。 –

+0

就我而言,我想設計一個帶有開始,暫停,停止,下一個按鈕的音頻控制器。我認爲我的初始狀態應該是Prepared,這是用戶選擇一首歌后,我的應用程序準備好了這首歌。然後用戶可以暫停或停止它。問題是,在暫停後,我可以直接調用MediaPlayer.start(),但是在停止之後,我必須在調用開始之前重新準備歌曲。這就是我問的原因。我的邏輯有意義嗎?也許我應該使用其他邏輯或在我的代碼中手動維護狀態?謝謝。 –

0

如果你有一個重新出發的煩惱停止後MediaPlayer,然後試試這個:

if (mMediaPlayer != null) { 
    mMediaPlayer.stop(); 
    try { 
     mMediaPlayer.prepare(); 
    } catch (IOException e) { 
     Log.e(LOG_TAG, "IOException during prepare after stop! mMediaPlayer value: " + mMediaPlayer); 
    } 
} 

你基本上準備下一次啓動。它爲我工作。