Android:if语句不能与.isPlaying()一起使用

时间:2016-08-30 11:19:35

标签: java android android-mediaplayer

我创建了一个onClick方法PlaySound,其中if语句检查天气是否正在播放声音,如果正在播放它会停止它,否则它会启动它。我面临的问题是if语句总是假的,从不真。

CODE

public void PlaySound(View view) {
    final MediaPlayer clickSound = MediaPlayer.create(this, R.raw.abcd);

    if(clickSound.isPlaying()) {
        clickSound.stop();
    }
    else{
        clickSound.setLooping(true);
        clickSound.start();
    }
}

1 个答案:

答案 0 :(得分:2)

删除

final MediaPlayer clickSound = MediaPlayer.create(this, R.raw.abcd);

play方法创建并在方法之外创建。

修改以便您遵循以下步骤:

您可以使用MediaPlayer的全局变量

 public  MediaPlayer clickSound ;

然后在onCreate方法中创建:

clickSound = MediaPlayer.create(this, R.raw.abcd);

因此您的play方法将是:

public void PlaySound(View view) {

    if(clickSound.isPlaying()) {
        clickSound.stop();
    }
    else{
        clickSound.setLooping(true);
        clickSound.start();
    }
}