2014-03-04 221 views

回答

4

沒有API來檢查是否MediaPlayer暫停與否。因此,請使用任何布爾變量檢查並在您使用任何button暫停時切換它。

onClick(){ 
if(isPaused) 
    { 
    //resume media player 
    isPaused = false; 
    }else{ 
    // pause it 
    isPaused = true; 
    } 
} 
+0

如果沒有這樣的方法,那麼如何你要設置isPaused得到變量的值? – Kedarnath

+0

isPaused得到=!isPaused得到 –

-1

由於ANKIT回答沒有API來檢查媒體播放器是否暫停與否,我們必須以編程方式檢查它像這樣

private boolean pause=true; //A Boolean variable to check your state declare it true or false here depends upon your requirement 

現在你可以做一個方法,在這裏檢查時要檢查玩家暫停

public void checkplayer(MediaPlayer player){ 
if(isPause=true) //check your declared state if you set false or true here 
Player.pause(); 
else if(isPause=false){ 
Player.play(); 
or 
Player.stop(); 
} 
1

有哪些可以用來檢查媒體播放器播放或沒有媒體播放器的方法IsPlaying模塊(),並相應地,我們可以設置一個標誌並開展工作。目前沒有任何API。要做到這一點

9

一種方法是檢查,如果媒體播放器是不是在玩(暫停),並檢查它是否是在比起始位置(1)以外的位置。

MediaPlayer mediaPlayer = new MediaPlayer(); 

Boolean isPaused = !mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 1; 
+0

文檔說getCurrentPosition回報「以毫秒爲單位的當前位置」。如果你從未放置mediaPlayer,它將是一個很大的數字,如1628054332或類似的數字(可能是1970年以來的毫秒系統時間)。因此,爲了照顧用戶第一次玩遊戲(之前沒有使用過暫停),您將不得不引入某種標誌。 –

0

定義一個變量boolean稱爲playedAtLeastOnce(或任何你想要的),然後將其設置爲true如果您MediaPlayer對象已經一次至少播放。將其分配給true的一個好地方是在onPrepared(MediaPlayer mp)方法中從MediaPlayer.OnPreparedListener實現的接口。

那麼如果MediaPlayer是不是在玩和playedAtLeastOncetrue,你可以說,MedaiPlayer暫停。

boolean playedAtLeastOnce; 

@Override 
public void onPrepared(MediaPlayer mp) { 
    mp.start(); 
    playedAtLeastOnce = true; 
} 

public boolean isPaused() { 
    if (!mMediaPlayer.isPlaying && playedAtLeastOnce) 
     return true; 
    else 
     return false; 
    // or you can do like this 
    // return !mMediaPlayer.isPlaying && playedAtLeastOnce; 
}