我正在使用Java制作类似桌面软电话的应用程序。我想添加拨号号码(DTMF)。例如,当我拨打51时,它会在按下5之后播放dtmf5.wav
,但是当我按下1时它会播放dtmf1.wav
,而不会停止5的音调。我怎样才能确保只有一个声音 - 最新声音 - 一次播放?
这就是我用来播放声音的方法:
private void lbl01MouseReleased(java.awt.event.MouseEvent evt) {
String val=txtdisplay.getText() + "1";
txtdisplay.setText(val);
if (evt.getSource() == lbl01) {
URL urlClick = StartGUI.class.getResource("/Dtmf/dtmf1.wav");
AudioClip click = Applet.newAudioClip(urlClick);
click.play();
}
}
答案 0 :(得分:0)
要停止任何以前播放的音频,您可以在创建时保留对AudioClip
的引用。当动作发送到播放剪辑时,只需通过调用它的stop
方法停止上一个剪辑。
AudioClip currentAudio = null;
...
private void lbl01MouseReleased(java.awt.event.MouseEvent evt){
String val=txtdisplay.getText() +"1";
txtdisplay.setText(val);
if ( currentAudio != null ){
currentAudio.stop();
}
if (evt.getSource() == lbl01)
{
URL urlClick = StartGUI.class.getResource("/Dtmf/dtmf1.wav");
currentAudio = Applet.newAudioClip(urlClick);
currentAudio.play();
}
}