【问题标题】:Android : how to know if MediaPlayer is paused?Android:如何知道 MediaPlayer 是否已暂停?
【发布时间】:2014-04-05 17:43:56
【问题描述】:

MediaPlayer.isPlaying() 不允许知道MediaPlayer 是停止还是暂停。如何知道它是暂停还是没有停止?

谢谢!

【问题讨论】:

标签: java android stream media-player android-mediaplayer


【解决方案1】:

定义一个名为playedAtLeastOnce 的boolean 变量(或任何您想要的),然后如果您的MediaPlayer 对象已播放至少一次,则将其设置为true。在MediaPlayer.OnPreparedListener 实现接口的onPrepared(MediaPlayer mp) 方法中将其分配为true 的一个好地方。

那么如果MediaPlayer 没有播放并且playedAtLeastOnce 是true,你可以说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 it like this
    // return !mMediaPlayer.isPlaying && playedAtLeastOnce;
}

【讨论】:

    【解决方案2】:

    执行此操作的一种方法是检查媒体播放器是否未播放(暂停)并检查它是否位于起始位置 (1) 以外的位置。

    MediaPlayer mediaPlayer = new MediaPlayer();
    
    Boolean isPaused = !mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 1;
    

    【讨论】:

    • 文档说 getCurrentPosition 返回“以毫秒为单位的当前位置”。如果您从未暂停 mediaPlayer,它将是一个巨大的数字,例如 1628054332 或类似的数字(可能是自 1970 年以来以毫秒为单位的系统时间)。因此,为了照顾用户第一次播放(之前没有使用暂停),您必须引入某种标志。
    【解决方案3】:

    正如 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();
    }
    

    【讨论】:

      【解决方案4】:

      没有 API 可以检查 MediaPlayer 是否已暂停。因此,当您使用任何button 暂停时,请使用任何布尔变量来检查和切换它。

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

      【讨论】:

      • 如果没有这样的方法,那么你将如何设置 isPaused 变量的值?
      猜你喜欢
      • 2017-02-06
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多