2017-06-07 7 views
-1
public static void main(String[] args) { 
     try{ 
      File file = new File("audiodata/test.wav"); 
      AudioInputStream ain = AudioSystem.getAudioInputStream(file); 

      AudioFormat format = ain.getFormat(); 
      DataLine.Info info = new DataLine.Info(Clip.class, format); 

      Clip clip = (Clip) AudioSystem.getLine(info); 
      clip.open(ain); 

      clip.start(); 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 

サウンドファイルを再生するこの簡単なメインメソッドを記述しましたが、動作しません。例外はスローされません。プログラムが終了し、何も聞こえません。私のミスは何なのか分かりません。また、クリップをAudioSystem.getClip();で作成しても何も変わりません。javax.sound.sampled.Clipが再生されない

+1

あなたはそれが再生を終了するまで待つ必要があります。現在、あなたは出かける機会がある前に、ただ終了しています。 –

答えて

-1

再生を終了するビープ音が鳴るのを待ちする正しい方法は、たCountDownLatchのような並行処理クラスで、または待つ/通知やロックのような低レベルの同時実行操作である:あなただけのクリップの再生を開始している

Clip clip = (Clip) AudioSystem.getLine(info); 

CountDownLatch doneLatch = new CountDownLatch(1); 

clip.addLineListener(new LineListener() { 
    @Override 
    public void update(LineEvent event) { 
     if (event.getType().equals(LineEvent.Type.STOP)) { 
      doneLatch.countDown(); 
     } 
    } 
}); 

clip.open(ain); 
clip.start(); 

doneLatch.await(); 
関連する問題