javascript - 我想使用同一个按钮来播放和暂停。第一次单击我想播放它,第二次单击我想暂停它

标签 javascript android

当我再次点击它时,我想播放它。这是我的代码,但它不起作用,因为当我一次又一次单击按钮时,它开始一次又一次重复相同的音频,而不是暂停。请帮助我

Button button_attention = (Button)findViewById(R.id.button_one);
        button_attention.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                 player=MediaPlayer.create(MainActivity.this, R.raw.alarm_effect);
                {
                    if (player.isPlaying()){
                        player.stop();}
                    else {
                        player.start();
                    }
                }

最佳答案

每次调用时,您都会在点击处理程序中重新定义媒体播放器,因此它将不起作用。您需要将定义移到单击处理程序之外,然后从内部引用它。

//Move it to here
player=MediaPlayer.create(MainActivity.this, R.raw.alarm_effect);

Button button_attention = (Button)findViewById(R.id.button_one);
    button_attention.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                if (player.isPlaying()){
                    //This maybe should be pause.
                    player.stop();
                }
                else {
                    player.start();
                }

编辑: 除了您关于如何将其用于多个轨道的评论之外,您应该执行如下操作。

实现一个方法,如下所示:

private void changeTrack(int resourceId){
    player = MediaPlayer.create(MainActivity.this, resourceId);
}

当您希望更改轨道时,只需调用此方法即可:

changeTrack(R.raw.MEDIA_NAME);

关于javascript - 我想使用同一个按钮来播放和暂停。第一次单击我想播放它,第二次单击我想暂停它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239830/

相关文章:

javascript - getImageData 函数的问题

android - ViewStub 与 View.GONE

安卓媒体编解码器 : Is it possible to encode audio and video at the same time using mediacodec and muxer?

java - 如何通过反射改变方法行为?

javascript - 获取 Facebook 身份验证对话框以重定向到运行我的应用程序的原始浏览器窗口

javascript - Uint16Array 访问 byteOffset 1、3、5 等

android - 安排发布到 Google Play Android Market

java - 我的应用程序不断崩溃,SQLite 数据库泄漏错误

javascript - 调用保存时如何防止 Backbone 更新模型?

javascript - 从域的浏览 session 中识别和删除不需要的 CSS(文件/样式)和 JS(脚本/函数)