作者dayinout (day in day out)
看板java
标题[问题] 音效总是会多loop一次
时间Thu Nov 14 17:38:55 2013
想请教一下
我想做一个button 让人每次点击时,都会听到1次button的按钮声
然而我从网路上看来的程式,不论怎麽改,总是会在第1次按的时候,
声音多loop一次 (换言之使用者在第一次点击时,会听到两次button声音)
奇怪的是,之後怎麽点击就只会听到1次声音
想请教这样的问题该怎麽解决呢? 以下是程式码 感谢
//档案路径过长 在此省略一下
URL url = new URL("file:/C:/Users...sound/click_22.wav");
clip = AudioSystem.getClip();
ais = AudioSystem.getAudioInputStream(url);
//点击按钮时产生音效,这段写在endTurnButton里
endTurnButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
if (!(clip.isOpen()))
clip.open(ais);
} catch (LineUnavailableException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
clip.loop(1);
}
}
我尝试过把loop(1) 改为loop(0),然而这样就只有第1次响1声,
之後点button声音都不再响
实在是看不出所以然 (照理说应该只会loop一次 但为何第一次点击时都会loop 次?
还请提点一下 感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.224.227.111
※ 编辑: dayinout 来自: 36.224.227.111 (11/14 18:06)
1F:推 LaPass:你先把clip.loop(1);注解掉,看看是不是只响一声。 11/14 19:01
2F:→ LaPass:如果是,那就是刚开启时会自动拨放 ^有第一次 11/14 19:04
感谢您的意见:)
注解掉过,但就变成没有任何声音的状态
後来多看了几个人的程式码,最後参考来自国外和一个国内网站的程式码
删去几行做合并过後
终於做出button点击一次只响一声的功能 (原本第一次点击会响两次)
程式码如下:
URL url = new URL("file:/C:/Users/.../sound/click_01.wav");
clip = AudioSystem.getClip();
ais = AudioSystem.getAudioInputStream(url);
clip.open(ais);
clip.setFramePosition(0); //结果加了这行就行了 (省去前的try那几行程式码
clip.start();
成功固然是好
但老实说不太懂为什麽,尤其是最开始会响两声的问题 XD
※ 编辑: dayinout 来自: 59.115.129.185 (11/14 20:22)
3F:推 LaPass:恭喜~ 11/14 20:42
4F:→ dayinout:谢谢^^ 很感谢您提供建议呢! 11/15 01:59