2016-07-13 4 views
0

私はthis methodがあることを知っていますが、ドキュメントではファイルがターゲットフォーマットに変換されると記載されています。私は何も変換したくないし、オーディオファイルが再生されるたびにJREに "試して"オーディオフォーマットを決定させたくない。このオーバーヘッドなしでオーディオファイルを再生するにはどうすればよいですか?ちなみに、ファイルは.wavです。オーディオファイルの形式が正確で、繰り返し再生する必要がある場合は、Javaでサウンドを再生する方法は?

答えて

0

私はいつか戻ってみました。サウンド形式はあなたが...一度

public static synchronized void audioPlay(String fileLoc) {new Thread(new Runnable() { 

    public void run() { 
     try { 
     Clip clip = AudioSystem.getClip(); 
     AudioInputStream ais= AudioSystem.getAudioInputStream(
      Main.class.getResourceAsStream("the path of the wav file" + fileLoc)); 
     clip.open(ais); 
     clip.start(); 
     } 
catch (Exception ex) { 
     ex.printStackTrace(); 
     System.out.println(ex.getMessage); 
     } 
    } 
    }).start(); 
} 
+0

はい、私のアプリケーションはすでにこのようなファイルを再生しています。使用しているgetAudioInputStream(...)メソッドのドキュメントには、「このメソッドの実装では、複数のパーサーがストリームを調べてサポートしているかどうかを判断する必要があります。私はオーディオファイルの正確なフォーマットを知っているので、フォーマットを決定するために "試してみる"パーザは嫌いです。 – ed22

+0

私の答えはあなたに役立つと思います。それは? –

+0

残念ながら... – ed22

0

を試すことが.WAV

だった私はここで答えを見つけました:http://www.albeesonline.com/blog/2007/10/20/play-wav-files-using-java/

try { 
    AudioInputStream stream = 
    AudioSystem.getAudioInputStream(new File("C:\\i386\\Blip.wav")); 

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

    clip.open(stream); 
    clip.start(); 

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

今、私は後で使用するためのフォーマットを保存することができます。

関連する問題