♪サイン波の音
出せた。プログラム的にはきれいじゃないけど。特に、AudioPlayerとかは公開パッケージじゃないし。あと、AudioPlayerはスレッドなので、止め方が良く分からないので一定時間過ぎると強制終了とした。
private static final int LENGTH = 0x100000;
public static void main(String[] args) throws Throwable {
byte[] data = new byte[LENGTH];
for (int i = 0; i < data.length; i+=2) {
double d = Math.sin(i * 0.068) * 100;
data[i] = (byte)(0xFF & ((int)d >> 4));
data[i + 1] = (byte)(0xFF & (int)d);
}
AudioFormat af = new AudioFormat(48000, 16, 1, true, false);
InputStream in = new ByteArrayInputStream(data);
AudioInputStream ais = new AudioInputStream(in, af, LENGTH);
AudioFileFormat.Type type = AudioFileFormat.Type.WAVE;
ByteArrayOutputStream os = new ByteArrayOutputStream();
AudioSystem.write(ais, type, os);
ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
sun.audio.AudioPlayer.player.start(is);
Thread.sleep(30000);
System.exit(0);
}