Java录音和混音器设置

Java录音和混音器设置,java,javasound,Java,Javasound,我正在无线电数据模式解码程序中使用javax.sound.sampled包。要使用该程序,用户将音频从无线电接收器输入PC的线路输入。用户还需要使用他们的混音器程序来选择线路输入作为录制输入。问题是一些用户不知道如何做到这一点,有时其他程序也会改变录制输入设置。所以我的问题是,我的程序如何检测行输入是否设置为录制输入?此外,如果我的程序检测到录音输入设置不正确,它是否可以更改录音输入设置 谢谢你抽出时间 Ian要回答第一个问题,您可以检查录制输入的对象是否匹配,如下所示: public stat

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

谢谢你抽出时间


Ian

要回答第一个问题,您可以检查录制输入的对象是否匹配,如下所示:

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上不能。有关更多信息和建议,请参见此


关于第二个问题,您可以尝试通过类更改录制输入设置。有关一些常用设置,请参见。请记住,这些控件的可用性取决于操作系统和声卡驱动程序,就像在线检测一样。

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