如何使播放媒体文件的按钮相同,停止它?这是到目前为止我尝试过的,但问题是,每当我按下按钮,试图播放和停止音乐,它会在运行日志中出现一个错误,什么都不会发生。我还在学习一些东西,所以如果有人能解释如何正确地播放和停止音频,以及其他使其正常工作所需的东西,那就太好了。我对MediaPlayer状态比较熟悉,只是我很难把代码正确地组合在一起。谢谢。
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer musicMP = MediaPlayer.create(this, R.raw.lofi);
Button playMusic = this.findViewById(R.id.bell_peppers_and_beef);
playMusic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
musicMP.start();
musicMP.stop();
}
});}}运行日志错误:
mPlayer(0x720df4c340) V/MediaPlayer原住民:接收到的消息msg=100,ext1 1=-38,ext2=0 E/MediaPlayer原住民: error (-38,0) V/MediaPlayer JNI:停止V/MediaPlayer原住民:停止E/MediaPlayer原住民:状态0中调用的停止E/MediaPlayer原住民: mPlayer(0x720df4c340) V/MediaPlayer原住民:收到的消息msg=100,ext1 1=-38,ext2=0 E/MediaPlayer原住民: error (-38,0)
发布于 2021-08-21 23:49:27
MediaPlayer有isPlaying()方法:
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
} else {
mediaPlayer.start();
}但是,如果您想调用stop(),那么还需要调用prepare()才能再次调用start() (您的不能直接从停止状态转到启动状态):
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.prepare();
} else {
mediaPlayer.start();
}您可以在文档中检查所有允许的状态之间的转换。
https://stackoverflow.com/questions/68877237
复制相似问题