我理解TargetDataLine
和SourceDataLine
的概念,我编写了一个程序来列出它们以及每个Ports
和可用的Controls
。对于测试程序,我有一个板载麦克风,板载扬声器,线路输入,扬声器插孔和带两个输入和一个输出的音频接口。接口上的输入被视为左和右,所以我不确定如果它们作为一个立体声输入,我将如何区分它们。
我希望能够在运行时选择我想用于录制或播放的DataLine
。如何识别和分离输入和输出以列出它们并允许用户选择要使用的特定输入和输出?如果有人有任何建议将接口输入作为两个单声道输入来处理这也会有所帮助。提前谢谢。
答案 0 :(得分:0)
要将两条单声道线转换为立体声,需要左右交错,一次一个“样本”。样本的大小取决于您的位深度。例如,16位编码消耗两个字节。所以,从左边拿两个字节,然后从右边拿两个字节。重复行的持续时间。
可能有预建的方法可以帮助您解决此问题。查看Java声音教程部分中关于转换格式的部分 - 它就像声音教程的第4或第5部分,如果我没记错的话,碰巧也是最好的一部分。 (提供的实际示例代码与此非常困难的教程的其余部分不同。)
我不确定选择线路或端口与编程选择其他任何东西是不同的。您创建一个列表,用户单击与该项目关联的按钮,或从下拉列表中选择该项目,然后将其插入。
我有一个地方,我做了一个菜单栏,允许人们选择一个混音线。它只是填充一个单选按钮集,其中包含找到的混音器的名称。当您选择项目时,侦听器会指示一个项目来安装关联的混音器。