如果 mediaplayer.pasue() 在 mediaplayer.start() 之前调用,则音乐不会播放

if mediaplayer.pasue() is called before mediaplayer.start() , then music is not playing

我为按钮“播放”和“暂停”创建了两个 onClick 方法,但是如果先点击“暂停”然后点击“播放”按钮,则音乐不会播放。下面是代码

package com.example.myaudio;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class MainActivity extends AppCompatActivity {

    MediaPlayer mediaPlayer;

    public void playAudio(View view)
    {
        mediaPlayer.start();
    }
    public void pauseAudio(View view)
    {

        if(mediaPlayer.isPlaying()){
           mediaPlayer.pause();
        }

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mediaPlayer = MediaPlayer.create(this,R.raw.mymusic);

    }
}

正如 the MediaPlayer documentation 所说,调用 pause 的唯一有效状态是 StartedPaused,以及 PlaybackCompleted.

在其他状态下调用 pause 会将 MediaPlayer 实例置于 Error 状态,并尝试 start MediaPlayer当它处于错误状态时将不起作用。

底线:不要在 MediaPlayer 上调用方法,除非播放器处于可以调用该方法的状态(如文档所述)。