java - 如果在 mediaplayer.start() 之前调用 mediaplayer.pasue() ,则不播放音乐
问题描述
我为按钮 Play 和 Pause 创建了两个 onClick 方法,但是如果先点击 Pause,然后点击 Play 按钮,则无法播放音乐。下面是代码
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);
}
}
解决方案
正如文档所说,调用有效的MediaPlayer
唯一状态pause
是Started、Paused和PlaybackCompleted。
调用pause
when in some other state 会使MediaPlayer
实例处于错误状态,并且尝试start
在MediaPlayer
它处于错误状态时将不起作用。
底线:不要在 a上调用方法,MediaPlayer
除非玩家处于可以调用该方法的状态(如文档所述)。
推荐阅读
- sapui5 - 如何在 sapui5 中禁用 sap.m.column 的个性化
- c# - 创建我们自己的内容页面时出现 Xaml 错误
- android - Firebase ML Kit 人脸检测不准确
- javascript - 如何实现复选框选择功能以使用 ajax/json 发送电子邮件?如果可能的话
- java - 硒页面工厂未捕获的下拉值
- angular - 导入导出核心模块和共享模块
- android - android 8 中的问题 - 使用 red5 pro 的两种方式流式传输
- go - golang 1.12 导入相对目录模块
- android - 在本地通知上打开特定页面单击 Ionic
- javascript - Notification.requestPermission() 未请求权限