0

我正在做一个小项目,我需要在用户按下按钮时播放声音。那部分我似乎已经下来了。但问题是,如果用户向按钮发送垃圾邮件,声音将一遍又一遍地播放,并与自身重叠。如何在声音播放期间锁定按钮,或者将每次点击放入队列中以在另一个之后播放,而不是在按下的瞬间?这就是我到目前为止所拥有的。我对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();
    }
    });
}
4

3 回答 3

0

它是一个jbutton吗?如果是这样,那么只需使用。替换为您的 JButton 的名称。

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

//Enables it
<JbuttonName>.setEnabled(true);
于 2013-09-15T16:31:51.767 回答
0

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

if(!mp.isPlaying())
{
     mp.start();
}
于 2013-09-15T16:45:33.497 回答
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;
            }
        });
于 2019-01-10T10:50:19.000 回答