[英]Java Sound using specific Ports and DataLines
感觉就像我在此站点上提出的与Java声音相关的第100个问题,但是在Java Sound API或jsresources.org的任何地方都找不到答案。 我正在制作一个多轨录音机,到目前为止,它的工作效果很好,好于预期,我目前遇到的问题是允许用户在运行时为每个音轨选择一个输入。 现在,我的程序只需从Mixer
获取可用的TargetDataLine
,我就可以在录制过程中控制音量以及保持平衡。 如果我列出Ports
并允许用户选择特定的Port
(例如笔记本电脑中的内置麦克风),如何获取该特定Port
的TargetDataLine
来进行记录? 关闭所有未使用的Ports
是否有问题?
我还只是在列出Ports
源时提到了输入和目标输出时才注意到,我只是习惯了DataLines
,如果有人可以澄清我会很感激的话。
有什么东西,可以帮助我解决我目前的问题是理解之间的关系Ports
和DataLines
,我知道这两个都是,但我不明白为什么你不能得到DataLine
从Port
就像你混频器,那么什么是两者之间的关系?
您已经超越了我的尝试,但是也许我仍然可以帮上忙!
您是否看到端口和数据线之间差异的摘要? 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.