繁体   English   中英

使用特定端口和数据线的Java Sound

[英]Java Sound using specific Ports and DataLines

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

我还只是在列出Ports源时提到了输入和目标输出时才注意到,我只是习惯了DataLines ,如果有人可以澄清我会很感激的话。

有什么东西,可以帮助我解决我目前的问题是理解之间的关系PortsDataLines ,我知道这两个都是,但我不明白为什么你不能得到DataLinePort就像你混频器,那么什么是两者之间的关系?

您已经超越了我的尝试,但是也许我仍然可以帮上忙!

您是否看到端口和数据线之间差异的摘要? 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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM