OS X 上的 Java 声音输入。不支持音量控制?崩溃

标签 java macos audio

对于 MacBook Pro 上的内置麦克风和内置输入,以下几行均返回 false:

line.isControlSupported(FloatControl.Type.VOLUME);
line.isControlSupported(FloatControl.Type.MASTER_GAIN);

lineTargetDataLine 的一个实例,并且已成功 open()'d。

因为我无法设置增益,所以我捕获的任何音频都处于极低的水平,并且被噪音淹没。 JVM(1.6.0_24、com.apple.javajdk16.cmd、OS X 10.6.7)在调用 TargetDataLine.close() 时也经常崩溃。

有人对此感到幸运吗?

最佳答案

检查一下 - 这里有 OS X java 声音演示应用程序。
http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/

也有一个可用的 os x 增益控制。

基于评论:

也检查一下:http://www.jsresources.org/faq_audio.html#recording_volume ,但老实说从未尝试过。在页面:

The obvious solution would be to get a Control object of type VOLUME or MASTER_GAIN for the TargetDataLine and manipulate the volume via this object. However, this is not possible, since no known Java Sound implementation supports any controls for TargetDataLine instances.

What you can do is to use the system mixer to control the recording volume --- it affects hardware settings in the soundcard. One possibility is to use the mixer application of the operating system. The other possibility is using Port lines from inside a Java Sound application. See the section Ports for details.

关于OS X 上的 Java 声音输入。不支持音量控制?崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169076/

相关文章:

swift - 如何获取 "item"或已编辑的 NSOutlineView 文本字段单元格的行索引?

java - 由 : org. springframework.beans.factory.NoSuchBeanDefinitionException 引起:没有合格的 bean 类型

java - 如何在 hibernate 中使用条件创建内部查询?

c++ - MAC OS Eclipse C++ 启动二进制文件失败

c++ - 如何使用gcc/g++编译多个cpp文件的头文件?

Windows 核心音频 API + WaveOutXxx API

ios - 如何验证混音器单元和 iPodEQ 单元的 AudioUnit 属性

javascript - 如何创建简单的音频播放列表

java - 如何动态排序选择

java - 用poi写入excel文件