如何在android studio上编码播放停止按钮

时间:2017-08-22 02:51:39

标签: android

我需要一些关于下面代码的建议。我正在尝试创建一个简单的应用程序,当人们点击播放按钮时,音乐将开始播放,当人们点击停止按钮时,音乐将停止播放。我正在使用一个按钮来启动和停止这两个任务。

我已经在Android模拟器上测试了,这个启动和停止按钮正常工作,如我所愿。但是当我构建一个APK文件并在设备上播放时,问题就出现了。停止按钮无法正常工作。如果我按下停止按钮,音乐将从头开始重新开始播放。

有关此问题的任何想法?谢谢。

btn_playstop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (btn_playstop.isPressed()) {
                if (player.isPlaying()) {
                    player.stop();
                    try {
                        player.prepare();
                    } catch (IllegalStateException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    player.seekTo(0);
                    btn_playstop.setBackgroundResource(R.drawable.play);
                }
                else {
                    player.start();
                    btn_playstop.setBackgroundResource(R.drawable.stop);
                }
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

要实现播放/停止按钮,请执行此操作。

btn_playstop.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (player != null && player.isPlaying()) {
            player.stop();
            player.release();
            player = null;
              try {
                 player.prepare();
              } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
              e.printStackTrace();
              } catch (IOException e) {
                // TODO Auto-generated catch block
              e.printStackTrace();
              }
              player.seekTo(0);  //<---- This is to resume the player from a specified position. It is helpful for a pause button. You can remove it for a stop button.
              btn_playstop.setBackgroundResource(R.drawable.play);

         }
        else {              
            player.start();
                btn_playstop.setBackgroundResource(R.drawable.stop);
        }
     }   

});

您不必调用seekTo(Length)方法停止按钮,因为它意味着从指定位置恢复播放器。另外if (btn_playstop.isPressed())也是不必要的,因为您已使用setOnClickListener调用了按钮。