2012-02-08 8 views
0

sun.audio APIによると、.wavはサポートされているファイルだとはいうものの、明らかに私が持っていたはずのファイルではないはずです。 .aiffファイルは現在動作していますが、このやり方ではなく、私はより複雑な方法を見つけました。Javaプログラムでサウンドを再生する

String strFilename = "C:\\Documents and Settings\\gkehoe\\Network\\GIM\\Explode.aiff"; 
    File soundFile = new File(strFilename); 

    AudioInputStream audioInputStream = null; 
    try 
    { 
     audioInputStream = AudioSystem.getAudioInputStream(soundFile); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

    AudioFormat audioFormat = audioInputStream.getFormat(); 
    SourceDataLine line = null; 
    DataLine.Info info = new DataLine.Info(SourceDataLine.class, 
              audioFormat); 
    try 
    { 
     line = (SourceDataLine) AudioSystem.getLine(info); 

     /* 
      The line is there, but it is not yet ready to 
      receive audio data. We have to open the line. 
     */ 
     line.open(audioFormat); 
    } 
    catch (LineUnavailableException e) 
    { 
     e.printStackTrace(); 
     System.exit(1); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
     System.exit(1); 
    } 
    line.start(); 

    int nBytesRead = 0; 
    byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; 
    while (nBytesRead != -1) 
    { 
     try 
     { 
      nBytesRead = audioInputStream.read(abData, 0, abData.length); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
     if (nBytesRead >= 0) 
     { 
      int nBytesWritten = line.write(abData, 0, nBytesRead); 
     } 
    } 
    line.drain(); 

    /* 
     All data are played. We can close the shop. 
    */ 
    line.close(); 
+0

これは表示されましたかhttp://stackoverflow.com/questions/26305/how-can-i-play-sound-in-java#comment4884807_26311? – Mob

+0

はい、私はそれをしましたが、私はこのコードを持っていました。それは仕事をしません。 –

+0

質問がありましたか? –

答えて

0

source codeによれば、サポートされているファイル形式として認識されません。

+0

は.wavがサポートされていませんか?これはサポートされているタイプの1つであると私が理解していました。 –

+0

私はそう言っていませんでした。それは認識されていません。あなたは他の人と一緒に試しましたか? – teodozjan

0

Wavファイルはサポートされていますが、多くの変数があり、一部はサポートされていません。 たとえば、wavが44100の代わりに48000、または16ビットのエンコードではなく24または32ビットでエンコードされている場合、認識できない形式の例外が発生する可能性があります。

正確なエラーはありますか?

wavファイルの仕様(プロパティ)は何ですか?

Audacityなどのツールを使用して、1つのwavから互換性のあるwavに変換することは可能です。 wavファイルに使用する書式は次のとおりです。

16-bit encoding 
little endian 
44100 sample rate 
stereo 

私は実際にコード例をよく見ていませんでした。私はthisの再生例が好きです。

関連する問題