2

这感觉就像我在此站点上提出的第 100 个与 Java 声音相关的问题,但我在 Java 声音 API 或 jsresources.org 的任何地方都找不到答案。我正在制作一个多轨录音机,到目前为止它工作得很好,比预期的要好,我目前遇到的问题是允许用户在运行时为每个轨道选择一个输入。现在我的程序只需要一个可用TargetDataLineMixer,我可以在录制过程中控制音量以及平衡。如果我列出Ports并允许用户选择一个特定Port的,例如笔记本电脑中的内置麦克风,我如何获得一个用于录制TargetDataLine的特定的?Port是关闭所有未使用的问题Ports吗?

我也刚刚注意到,当列出源是指输入和目标输出时,如果有人能澄清我会很感激Ports,我只是习惯了相反的方式。DataLines

可以帮助我解决当前问题的事情是了解和之间的关系PortsDataLines我知道两者是什么,但我不明白为什么你不能像混音器一样DataLine从 a 中得到 a,那么两者之间的关系是什么?Port二?

4

1 回答 1

0

您正在领先于我尝试做的事情,但也许我仍然可以提供一些帮助!

您是否看到了 Port 和 DataLine 之间差异的摘要? http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/package-summary.html

在我看来,给定的端口只能与 SourceDataLine 或 TargetDataLine 中的一个一起使用,具体取决于它是输入端口还是输出端口。

您是否也尝试过这里的示例? http://docs.oracle.com/javase/tutorial/sound/capturing.html

在我看来,由于端口扩展了线路,因此如果您将端口替换为线路(假设它是输入端口),则用于读取音频的示例代码应该可以工作。示例代码对您有用吗?

我猜如果您要从多个端口混合声音,则需要解压缩声音数据,自己添加声音值并将它们重新打包为 PCM 样本(即,进行自己的音频混合)单个输出线。

于 2013-04-15T20:31:29.007 回答