[問題] 音效總是會多loop一次

看板java作者 (day in day out)時間11年前 (2013/11/14 17:38), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/2 (看更多)
想請教一下 我想做一個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
你先把clip.loop(1);註解掉,看看是不是只響一聲。
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
文章代碼(AID): #1IX9eoSw (java)
文章代碼(AID): #1IX9eoSw (java)