audio.java
import javax.sound.sampled.*;
import java.lang.Math;
public class Audio {
static final int freq=44100;//サンプリングレートは44100(=CD並
static final double hz=400;//音は400hz
public Audio(){
try{
AudioFormat fmt=new AudioFormat(freq, 8, 1, true, false);
SourceDataLine audio=(SourceDataLine)AudioSystem.getSourceDataLine(fmt);
audio.open(fmt);
byte[] data=new byte[freq];
for(int i=0;i<freq;i++){
data[i]=(byte)(127*Math.sin(2*Math.PI*hz*i/freq));
}
audio.start();
audio.write(data, 0, freq);
}catch(Exception e){
e.printStackTrace();
System.exit(1);
}
}
public static void main(String[] args){
new Audio();
}
}
audio.start()を忘れてて梃子摺った。
一サンプルあたりのバイト数をどうやれば上げられるのか分からない。
short[]とかわwrite関数が受け取ってくれないしどうしようか?