2012-01-19 16 views
0

私は5つのwavファイルを持っています。 sourceDataLineを使用して、1つのJavaプログラムから順番に再生したいと考えています。しかし、私のプログラムは正しい順序を維持していません。誰も私にコードセグメントを提供できますか?Javaで音を再生する

+7

号は私達にあなたの** **コードを表示します。 –

+0

すぐに役立つように、[SSCCE](http://sscce.org/)を投稿してください。 5音ではなく2音のサンプルにしますが、 –

答えて

3

Documentationを確認しましたか?

hereからこの例を試してみてください。

import java.io.*; 
import javax.sound.sampled.*; 
/** 
* Use SourceDataLine to read line-by-line from the external sound file.  
*/ 
public class SoundLineTest { 
    public static void main(String[] args) { 
     SourceDataLine soundLine = null; 
     int BUFFER_SIZE = 64*1024; // 64 KB 

     // Set up an audio input stream piped from the sound file. 
     try { 
     File soundFile = new File("gameover.wav"); 
     AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile); 
     AudioFormat audioFormat = audioInputStream.getFormat(); 
     DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); 
     soundLine = (SourceDataLine) AudioSystem.getLine(info); 
     soundLine.open(audioFormat); 
     soundLine.start(); 
     int nBytesRead = 0; 
     byte[] sampledData = new byte[BUFFER_SIZE]; 
     while (nBytesRead != -1) { 
      nBytesRead = audioInputStream.read(sampledData, 0, sampledData.length); 
      if (nBytesRead >= 0) { 
       // Writes audio data to the mixer via this source data line. 
       soundLine.write(sampledData, 0, nBytesRead); 
      } 
     } 
     } catch (UnsupportedAudioFileException ex) { 
     ex.printStackTrace(); 
     } catch (IOException ex) { 
     ex.printStackTrace(); 
     } catch (LineUnavailableException ex) { 
     ex.printStackTrace(); 
     } finally { 
     soundLine.drain(); 
     soundLine.close(); 
     } 
    } 
} 
+1

これは最高のコメントですね。 :-) – Scorpion

+0

@Scorpio:私はまだ完成していませんでした。 – CloudyMarble

+0

+1優れた編集。 –