2011-09-17 16 views
0

這是Java聲音信息頁面稍作修改的示例。 https://stackoverflow.com/tags/javasound/info不幸的是,它只播放一次,但意圖是兩次。通過剪輯和AudioInputStream進行的Java聲音重放不起作用

import java.io.File; 
import javax.sound.sampled.*; 

public class TestNoise { 
    public static void main(String[] args) throws Exception { 
     File f = new File("/home/brian/drip.wav"); 
     AudioInputStream ais = AudioSystem.getAudioInputStream(f); 

     AudioFormat af = ais.getFormat(); 
     DataLine.Info info = new DataLine.Info(Clip.class, af); 
     Clip clip = (Clip)AudioSystem.getLine(info); 

     clip.open(ais); 
     clip.start(); // heard this 
     Java.killTime(); 
     clip.start(); // NOT HEARD 
     Java.killTime(); 
    } 
} 

編輯:要了解答案,看到流浪提供的鏈接,或只是做它在下面他的回答評論說。

+0

1)請確認[JavaSound info。頁面](http://stackoverflow.com/tags/javasound/info)爲您播放WAV作品? 2)測試WAV的確切源(URL已更改)是否失敗? –

+0

爲了更快地獲得更好的幫助,請發佈[SSCCE](http://pscode.org/sscce.html)。 –

+1

@broiyan:如果你只是要刪除它,爲什麼我浪費空閒時間處理Swing驗證問題?適當注意以備日後參考。 –

回答

0

對於播放剪輯的第二次,你必須clip.start的第二個電話後,打電話

clip.start(); 
clip.stop(); 

原因();它試圖從it stopped previously的地方播放文件。

+1

謝謝。它需要一個clip.setFramePosition(0);使其正確重播。 – H2ONaCl