onClick在播放下一次单击之前等待声音完成

时间:2013-09-15 16:20:11

标签: java android

我正在开展一个小项目,当用户按下按钮时我需要播放声音。那部分我似乎已经失败了。但问题是,如果用户使用按钮,则声音将反复播放,重叠。如何在播放声音的过程中锁定按钮,或者可以将每次点击放入队列中继续播放,而不是在播出的瞬间播放?这就是我到目前为止所拥有的。我有点像Android开发的菜鸟。感谢。

public void SOS(View v) {
    MediaPlayer mp = MediaPlayer.create(this, R.raw.sos);
    mp.start();
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {
        mp.stop();
    }
    });
}

3 个答案:

答案 0 :(得分:0)

是jbutton吗?如果是这样,那就用吧。替换为JButton的名称。

//Disables it.
<JbuttonName>.setEnabled(false);

//Enables it
<JbuttonName>.setEnabled(true);

答案 1 :(得分:0)

保留对您的媒体播放器的引用,而不是每次都创建它,然后仅在它还没有播放时播放它,如下所示:

if(!mp.isPlaying())
{
     mp.start();
}

答案 2 :(得分:0)

尝试一下,它对我有用:

MediaPlayer mp;

public void mpStart() {
    mp = MediaPlayer.create(MainActivity.this, R.raw.sos);
    mp.start(); 
}

mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mp.release();
                mp = null;
            }
        });