【问题标题】:Java sound recording and mixer settingsJava 录音和混音器设置
【发布时间】:2012-11-15 11:20:46
【问题描述】:

我在无线电数据模式解码程序中使用 javax.sound.sampled 包。要使用该程序,用户将无线电接收器中的音频输入到 PC 的线路输入中。用户还需要使用他们的混音器程序来选择线路输入作为录音输入。问题是一些用户不知道如何做到这一点,有时其他程序也会改变录音输入设置。所以我的问题是我的程序如何检测线路输入是否设置为录音输入?如果我的程序检测到录制输入设置不正确,是否可以更改它?

感谢您的宝贵时间。

伊恩

【问题讨论】:

  • 如果代码在所有操作系统下运行会更好。

标签: java javasound


【解决方案1】:

要回答您的第一个问题,您可以检查您的录音输入的 Line.Info 对象是否与 Port.Info.LINE_IN 匹配,如下所示:

public static boolean isLineIn(Line.Info lineInfo) {
    Line.Info[] detected = AudioSystem.getSourceLineInfo(Port.Info.LINE_IN);
    for (Line.Info lineIn : detected) {
        if (lineIn.matches(lineInfo)) {
            return true;
        }
    }
    return false;
}

但是,这不适用于不提供每个可用混音器通道类型的操作系统或声卡驱动程序 API。因此,当我在 Windows 上测试它时,它可以工作,但在 Linux 或 Mac 上却不行。如需更多信息和建议,请参阅FAQ

关于第二个问题,您可以尝试通过Control 类更改录音输入设置。特别是,请参阅FloatControl.Type 了解一些常见设置。请记住,这些控件的可用性取决于操作系统和声卡驱动程序,就像线路检测一样。

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2020-12-07
    相关资源
    最近更新 更多