0

我最近尝试创建一个显示“播放”的按钮,当按下此按钮时,我希望它播放音乐然后将文本更改为“停止”,但它会引发错误并退出应用程序。这是我的代码:

        mPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if(ourMusic.isPlaying()){
                ourMusic.pause();
                mDisplay.setText("Play");
            }else{
                ourMusic = MediaPlayer.create(MainActivity.this, R.raw.killthenoise);
                ourMusic.start();
                mDisplay.setText("Stop");
            }
        }
    });

因此,如果您按下按钮一次它应该播放,再次按下它应该停止音乐。实际编码没有错误。这是我的日志:http: //pastie.org/7970711

我对这个东西很陌生,所以我不太了解发生了什么。任何帮助,将不胜感激。

4

2 回答 2

2

改用这个:

    @Override
    public void onClick(View v) {
        if (ourMusic == null) {
            ourMusic = MediaPlayer.create(MainActivity.this, R.raw.killthenoise);
        }

        if(ourMusic.isPlaying()){
            ourMusic.pause();
            mDisplay.setText("Play");
        }else{
            ourMusic.start();
            mDisplay.setText("Stop");
        }
    }

基本上不要:

  1. ourMusic每次点击播放时重新创建
  2. 尝试在ourMusic未实例化时使用。
于 2013-05-27T21:20:53.527 回答
0

添加全局变量 boolean flag=false;

if(flag==false)
        {
            mp=MediaPlayer.create(this, R.raw.abc);
            mp.start();
            playbutton.setText("Pause");
            flag=true;
        }
        else if(mp.isPlaying()&&flag==true)
        {
            mp.pause();
            playbutton.setText("Play");
            flag=false;
        }

如果您想在应用程序中使用与 PLAY/PAUSE 相同的按钮,此代码将起作用。希望这可以帮助。

于 2016-05-10T18:32:12.183 回答