我利用内声音。取样包裹在一个无线数据的方式解码程序。使用该程序的用户源音从他们的无线电接收器进入其电脑的行输入。用户还需要的是使用他们的混合器的程序来选择中的行为的记录输入。麻烦的是一些用户不知道如何做到这一点,也有时候,其他方案改变的记录输入设置。所以我的问题是如何可以我的程序的检测,如果该线设置的记录输入?也是它可能为我的计划要改变的记录输入设置,如果它检测到它是不正确的?

感谢您的时间。

Ian

有帮助吗?

解决方案

来回答你的第一个问题,你可以检查 Line.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上。更多的信息和建议,看看这个 常见问题.

关于你的的第二个问题,你可以尝试改变记录输入设置通过 控制 类。特别是,看到 FloatControl.类型 对于一些共同的设置。请记住,所提供的这些控制取决于操作系统和声卡驱动程序,就像线-在检测。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top