我試圖用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