该软件记录了PC的声音(带有targetdataline),但是我无法将Java中的两个声道(立体声)分开...
例如:我连接到我的PC一个ipode和一个iphone,一个音频线(立体声)ipode在右侧通道,iphone在左侧通道。所以我希望能够录制正确的频道或左声道。在我录制的那一刻,我在同一个音频文件上有两个声音。
我的AudioFormat
float sampleRate = 8000.0F; // 8000,11025,16000,22050,44100 int
sampleSizeInBits = 16; // 8,16 int channels = 2; // 1,2 boolean
signed = true; // true,false boolean bigEndian = false; // true,false
return new AudioFormat(sampleRate, sampleSizeInBits, channels,
signed,bigEndian);
用“TargetDataLine”编写我的文件例如:
targetDataLine.open(audioFormat);
targetDataLine.start();
AudioSystem.write(new AudioInputStream(targetDataLine), fileType,
audioFile);
有没有人有想法?
答案 0 :(得分:0)
您可以在targetDataLine上设置channels = 1,并使用它来读取特定通道上的数据。只要您需要特定频道上的音频,您就可以根据信息的读取位置了解要阅读的内容。将音频数据保存在byte []中是最合适的,因为您可以选择从字节[]中读取的数据。我建议你再次查看sound.sampled并决定如何处理它。我的系统麦克风出了问题,我会查看这段代码。