教程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()
,我会收到一个数组 one Info
,当传递给它时会mixer.getLine
返回一个类型为 的对象com.sun.media.sound.PortMixer$PortMixerPort
,该对象没有被记录。
如果我使用mixer.getTargetLines()
我会得到一个空数组。
如果我创建自己的DataLine.Info
并将其传递给混音器getLine
,我会得到不受支持的异常。
那么该怎么办?