我实现了一个独立的小程序基础应用程序来录制语音。我能够知道麦克风是否已连接,但是如果用户设置了内置麦克风并且还与系统连接了耳机(外部),那么我的应用程序无法识别选择了哪个麦克风,并且用户开始通过耳机录制,并且无法在此 case.so 捕获语音我想通过消息通知用户请在系统中设置外部麦克风设置。因此,请帮助我如何知道系统正在使用哪个麦克风。这是检查麦克风是否附加的代码:-
public static boolean checkMicrophone()
{
AudioFormat format=null;
TargetDataLine tline;
format = new AudioFormat( AudioFormat.Encoding.PCM_SIGNED, 44100.0F, 16, 2,4, 44100.0F, false);
Mixer.Info[] allMixer = AudioSystem.getMixerInfo();
boolean lineFound = false;
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
try{
tline = (TargetDataLine) AudioSystem.getLine(info);
lineFound=true;
}catch(Exception e){
}
if(lineFound)
return true;
else
return false;
}
试试这个文档,你会得到它.....
http://docs.oracle.com/javase/tutorial/sound/accessing.html
http://docs.oracle.com/javase/tutorial/sound/accessing.html
您可以查询 AudioSystem 以了解已安装的资源类型,然后您可以获取对它们的访问权限。例如,应用程序可能首先询问 AudioSystem 类是否存在具有特定配置的混音器,例如前面在行讨论中说明的输入或输出配置之一。然后,程序将从混频器获取数据线,依此类推。
下面获取系统上当前安装的混音器的数组
AudioSystem.getMixerInfo()