教程
http://download.oracle.com/javase/tutorial/sound/capturing.html
不包括如何选择麦克风.
我使用以下代码枚举混音器
System.out.println("Searching for microphones");
for(Mixer.Info mixerinfo : AudioSystem.getMixerInfo()) {
mixer = AudioSystem.getMixer(mixerinfo);
//System.out.println(mixerinfo.toString());
if( mixer.isLineSupported(Port.Info.MICROPHONE) ) {
mixers.add(mixer);
System.out.println(Integer.toString(mixers.size()) + ": " + mixerinfo.toString());
}
}
即通过麦克风输入的预设.但接下来,有一台调音台,我无法阅读.
如果我使用mixer.getTargetLineInfo(),我会收到一个Info的数组,当传递给mixer.getLine时,会返回类型为com.sun.media.sound.PortMixer $PortMixerPort的对象,该对象不会被删除.
如果我使用mixer.getTargetLines(),我得到一个空数组.
如果我创建自己的DataLine.Info并将其传递给调音台的getLine,我将得到不受支持的异常.
那么该怎么办?
本文探讨了基于Java的音频捕获教程中存在的问题,特别是如何枚举可用的麦克风设备及遇到的挑战。作者尝试使用AudioSystem获取混音器信息,并筛选支持麦克风输入的设备。然而,在进一步操作中遇到了一些技术障碍。

被折叠的 条评论
为什么被折叠?



