我创建了一个小程序来录制声音(我使用 JavaSound 和 TargetDataLine 来访问我的声卡)。我对 JSYN 的“DualOscilloscope.java”类进行了一些测试,以获得声音的视觉效果。问题是他们的班级用“合成器”打开了一条线,所以我在我的声卡上敲了两行,而我触发了异常(因为你不能在声卡上打开两行)。是否可以使用我的 TargetDataLine 实例化来初始化 JSYN 的合成器?
源代码类 DualOscilloscope(作者 Phil Burk)
protected void startAudio(int itemIndex) {
// Both stereo.
int numInputChannels = deviceMaxInputs.get(itemIndex);
if (numInputChannels > 2)
numInputChannels = 2;
int inputDeviceIndex = deviceIds.get(itemIndex);
synth.start(16000, inputDeviceIndex, numInputChannels, AudioDeviceManager.USE_DEFAULT_DEVICE, 0);
channel1.output.connect(pass1.input);
// Only connect second channel if more than one input channel.
if (numInputChannels > 1) {
channel2.output.connect(pass2.input);
}
// We only need to start the LineOut. It will pull data from the
// channels.
scope.start();