首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何录制javasound应用程序当前正在播放的声音?

如何录制javasound应用程序当前正在播放的声音?
EN

Stack Overflow用户
提问于 2013-07-10 04:10:00
回答 1查看 103关注 0票数 1

我有两个wav文件,我想模拟在三维空间的不同点生成,就像从一个矩形的4声道麦克风阵列中听到的那样。也就是说,理想的输出将是一个4通道wav文件或4个已知要同步的单通道wav文件。

我目前的方法并不是那么好,但原则上它是可以工作的。我让这两个声音在jReality模拟中从它们的位置播放(之所以选择它们,仅仅是因为我手边已经有了jReality模拟)。这有两个问题: A) jReality只支持单一的麦克风位置;B)它直接从jReality转到javasound并从那里传出我的扬声器。要解决A,我应该能够定位麦克风,进行录音,移动麦克风,然后重复。不幸的是,我不知道如何解决B,我只知道记录必须来自我的java代码,因为这是同步它的唯一方法。

所以问题有两个,首先,有没有更好的方法来模拟音频的混合和衰减?其次,有没有一种方法可以拦截发送到javasound的内容并将其存储到文件中?

EN

回答 1

Stack Overflow用户

发布于 2013-07-11 02:49:46

完全可以从四个来源(AudioInputLines)读取,并在“每帧”级别上处理它们。通常,编码器有一个while循环来读取传入的音频数据。对于每次缓冲区读取(对于四个源,您将有四个缓冲区),您将把传入的字节解码为声音数据,应用您的混合算法,然后根据您的音频格式将结果重新转换为字节。

如果您将上述内容包装在TargetDataLine中,则可以将其记录下来。

Java Sound教程以一种“大局”的方式介绍了这一点,但如果您以前没有接触过主要概念(关于使用javax.sound.sampled库),那么它将值得一看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17557269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档