首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使相同的按钮播放音频,停止时,按钮被点击?

如何使相同的按钮播放音频,停止时,按钮被点击?
EN

Stack Overflow用户
提问于 2021-08-21 22:38:47
回答 1查看 76关注 0票数 2

如何使播放媒体文件的按钮相同,停止它?这是到目前为止我尝试过的,但问题是,每当我按下按钮,试图播放和停止音乐,它会在运行日志中出现一个错误,什么都不会发生。我还在学习一些东西,所以如果有人能解释如何正确地播放和停止音频,以及其他使其正常工作所需的东西,那就太好了。我对MediaPlayer状态比较熟悉,只是我很难把代码正确地组合在一起。谢谢。

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2021-08-21 23:49:27

MediaPlayer有isPlaying()方法:

代码语言:javascript
复制
if (mediaPlayer.isPlaying()) {
    mediaPlayer.pause();
} else {
    mediaPlayer.start();
}

但是,如果您想调用stop(),那么还需要调用prepare()才能再次调用start() (您的不能直接从停止状态转到启动状态):

代码语言:javascript
复制
if (mediaPlayer.isPlaying()) {
    mediaPlayer.stop();
    mediaPlayer.prepare();
} else {
    mediaPlayer.start();
}

您可以在文档中检查所有允许的状态之间的转换。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68877237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档