我试图用Java生成声音。最后,我愿意不断地向声卡发送声音,但现在我可以发送一个独特的声波。使用javax.sound.sampled生成声音
所以,我用44100个有符号整数填充了一个数组,代表一个简单的正弦波,我想将它发送到我的声卡,但我无法让它工作。
int samples = 44100; // 44100 samples/s
int[] data = new int[samples];
// Generate all samples
for (int i=0; i<samples; ++i)
{
data[i] = (int) (Math.sin((double)i/(double)samples*2*Math.PI)*(Integer.MAX_VALUE/2));
}
而且我发送到使用声线:
AudioFormat format = new AudioFormat(Encoding.PCM_SIGNED, 44100, 16, 1, 1, 44100, false);
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = new AudioInputStream(ais,format,44100);
clip.open(inputStream);
clip.start();
我的问题所在,以代码片段,这些之间。我只是无法找到一种方法将我的int[]
转换为输入流!
您真棒。保存了我的一天:) – NewbiZ 2011-02-04 01:05:06