【问题标题】:In my Androidstudio music player pause button problem在我的 Androidstudio 音乐播放器暂停按钮问题
【发布时间】:2019-07-28 18:13:41
【问题描述】:

当我按下暂停按钮,然后按下播放按钮时,歌曲从暂停位置开始播放。但是当歌曲结束然后按播放键歌曲从暂停位置播放,而不是从开始播放。

在这里粘贴我的代码

 public void play(View view){
    if(mediaPlayer==null) {

        mediaPlayer = MediaPlayer.create(this, R.raw.ennasona);
        mediaPlayer.start();
    }

    else if (!mediaPlayer.isPlaying()){

        int nowMusicPosition = 0;

        if (nowMusicPosition == mediaPlayer.getDuration()){

            mediaPlayer = MediaPlayer.create(this, R.raw.ennasona);
            mediaPlayer.start();
        }
        else {
            mediaPlayer.seekTo(pauseCurrentPosition);
            mediaPlayer.start();
            nowMusicPosition = mediaPlayer.getCurrentPosition();

        }
    }
}
public void pause(View view){

    if(mediaPlayer!=null) {

        mediaPlayer.pause();

        pauseCurrentPosition = mediaPlayer.getCurrentPosition();

    }
}
public   void stop(View view){

    if (mediaPlayer!=null)

    mediaPlayer.stop();

    mediaPlayer = null;
}

【问题讨论】:

    标签: java android-studio-3.0 android-music-player


    【解决方案1】:

    看看 API,我会说你做的太复杂了。您不必记住位置,因为如果您暂停播放,MediaPlayer 应该自己记住位置。

    所以只需使用 play()、pause() 就可以了。不要寻找()。

    你的代码有问题:

    else if (!mediaPlayer.isPlaying()){
        // this is called nowMusicPosition, down there you've used pauseCurrentPosition
        // this always gets 0, never changes
        int nowMusicPosition = 0;
        if (nowMusicPosition == mediaPlayer.getCurrentPosition()){
             // now you're recreating the MediaPlayer. why?
            mediaPlayer = MediaPlayer.create(this, R.raw.ennasona);
            mediaPlayer.start();
        } else {
            // if video at its end gets stopped, the
            // getCurrentPosition() delivers the last
            // position in the video and you get down
            // here and you're seeking to the paused
            // position again
            mediaPlayer.seekTo(pauseCurrentPosition);
            mediaPlayer.start();
            // now you're setting nowMusicPosition, but it gets 0 again if pressing play again, see above
            nowMusicPosition = mediaPlayer.getCurrentPosition();
        }
    }
    

    【讨论】:

    【解决方案2】:

    这种情况有问题。

    if (nowMusicPosition == mediaPlayer.getCurrentPosition()){
    
            mediaPlayer = MediaPlayer.create(this, R.raw.ennasona);
    
        }
    

    这没有执行。重新检查一下。 即使您不需要重新创建媒体播放器实例,只需使用它即可

    mediaPlayer.start();
    

    完成后从头开始播放。

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2014-08-21
      • 1970-01-01
      相关资源
      最近更新 更多