2014-03-04 225 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; 
}