http://nalab.mind.meiji.ac.jp/~mk/program/sound/MakeWaveFile.java
1 /* 2 * MakeWaveFile.java 3 * version 1 (2008/3/5) by mk 4 * 参考: http://okwave.jp/qa1942478.html 5 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/sound/sampled/AudioSystem.html 6 */ 7 8 import java.io.IOException; 9 import java.io.File; 10 import java.io.InputStream; 11 import java.io.ByteArrayInputStream; 12 import javax.sound.sampled.*; 13 14 public class MakeWaveFile { 15 public static void main(String[] args) throws IOException { 16 // 音のPCMデータ (44.1kHz, 量子化ビット数16, ステレオ, 3秒) 17 byte[] data = new byte[44100 * 2 * 2 * 3]; 18 // 適当なデータ (良い子は自分が考えるデータに変えてみよう) 19 for (int i = 0; i < data.length; i++) { 20 data[i] = (byte) (((i & (1 << 6)) == 0) ? -18 : 18); 21 } 22 // オーディオフォーマットを決める (44.1kHz, 16bit, stereo) 23 AudioFormat audioFormat = 24 new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 25 44100.0F, 16, 2, 4, 44100.0F, false); 26 // ByteArrayInputStream を AudioInputStream にする 27 InputStream in = new ByteArrayInputStream(data); 28 AudioInputStream ais = new AudioInputStream(in, 29 audioFormat, 30 44100 * 2 * 2); 31 // オーディオファイルの種類を指定 32 AudioFileFormat.Type targetType = AudioFileFormat.Type.WAVE; 33 // 出力ファイル名 34 File outputFile = new File("test.wav"); 35 // えいっ、と書く 36 AudioSystem.write(ais, targetType, outputFile); 37 } 38 }