对于MacBook Pro上的内置麦克风和内置输入,以下几行均返回false
:
line.isControlSupported(FloatControl.Type.VOLUME);
line.isControlSupported(FloatControl.Type.MASTER_GAIN);
line
是TargetDataLine
的一个实例,并已成功open()
'd。
因为我无法设置增益,所以我捕获的任何音频都处于极低的水平并被噪声淹没。调用TargetDataLine.close()
时,JVM(1.6.0_24,com.apple.javajdk16.cmd,OS X 10.6.7)也经常崩溃。
有人对此有什么好运吗?
答案 0 :(得分:0)
检查一下 - 这是OS X java声音演示应用程序 http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/
也有一个有效的os x增益控制。
基于评论:
检查一下:http://www.jsresources.org/faq_audio.html#recording_volume,但老实说从未尝试过。在页面:
显而易见的解决办法是获得一个 VOLUME或类型的控制对象 用于TargetDataLine和的MASTER_GAIN 通过此对象操纵音量。 但是,这是不可能的,因为 没有已知的Java Sound实现 支持任何控件 TargetDataLine实例。
您可以做的是使用该系统 混音器控制录音音量 ---它会影响声卡中的硬件设置。一种可能性是 使用混音器应用程序 操作系统。另一个 可能性是使用端口线 在Java Sound应用程序中。看到 端口部分了解详情。