[問題] 音效總是會多loop一次
想請教一下
我想做一個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)
推
11/14 19:01, , 1F
11/14 19:01, 1F
→
11/14 19:04, , 2F
11/14 19:04, 2F
感謝您的意見:)
註解掉過,但就變成沒有任何聲音的狀態
後來多看了幾個人的程式碼,最後參考來自國外和一個國內網站的程式碼
刪去幾行做合併過後
終於做出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)
推
11/14 20:42, , 3F
11/14 20:42, 3F
→
11/15 01:59, , 4F
11/15 01:59, 4F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章