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

标签 java android android-studio android-mediaplayer

我为“播放”和“暂停”按钮创建了两个 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 的唯一有效状态是 StartedPausedPlaybackCompleted

在其他状态下调用pause会将MediaPlayer实例置于错误状态,并尝试启动 MediaPlayer 当处于 Error 状态时将无法工作。

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

关于java - 如果在 mediaplayer.start() 之前调用 mediaplayer.pasue() ,则不会播放音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60643562/

相关文章:

java - 卸载 Android Studio 会删除我的项目吗?

java - 如何使用 Android-Intent 在单击按钮时发送 TextView 数据?

java - Guice 如何根据 String id 提供不同的子类实例

java - 连接到瑞典维基百科以提取信息

android软键盘横向覆盖editText

android - 录制语音后获取访问麦克风的权限提示

java - 无法从文件读回 protobuf

php - 无法从 Android 连接到 PHP 中的数据库

android - 在 Android Studio 中更改项目主题?

android - 如何在子目录中移动模块?