android: IllegalStateException at android.media.MediaPlayer._stop(Native Method)

在播放音乐播放器暂停的时候,通常需要调用stop方法,通常是如下操作

    mMediaPlayer.setOnCompletionListener(newMediaPlayer.OnCompletionListener(){
    @Override
    publicvoidonCompletion(MediaPlayermp){
    mMediaPlayer.release();
    mMediaPlayer.stop();
    }});

在实际运行时候,如果这样 操作会报如标题所示错误,原因是java里面的mediaplayer对象的状态和native的对象状态不一致,mediaplayer的isPlaying方法引起的,修改后如下:

    mMediaPlayer.setOnCompletionListener(newMediaPlayer.OnCompletionListener(){
    @Override
    publicvoidonCompletion(MediaPlayermp){
    if(mMediaPlayer.isPlaying()){
        mMediaPlayer.release();
        mMediaPlayer.stop();
}}});

猜你喜欢

转载自blog.csdn.net/xk7298/article/details/81589443
今日推荐