停止先前播放的 WAV 声音
Stop previously played WAV sound
我正在 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();
}
}
要停止之前播放的任何音频,您可以在创建 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();
}
}
我正在 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();
}
}
要停止之前播放的任何音频,您可以在创建 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();
}
}