首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NAudio,记录多行

NAudio,记录多行
EN

Stack Overflow用户
提问于 2013-10-30 08:11:31
回答 1查看 1.4K关注 0票数 1

我需要捕捉多条线的音频。据我所知,它应该用WaveMixerStream32类来完成,但不知道如何将multiptle WaveIn初始化为WaveStream,以便将它们传递给WaveMixerStream的AddInputStream方法。我可以用代码记录单线的音频:

代码语言:javascript
复制
waveIn = new NAudio.Wave.WaveIn();
waveIn.WaveFormat = new NAudio.Wave.WaveFormat(44100, 1);
waveIn.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(audioDataAvailable);
waveWriter = new NAudio.Wave.WaveFileWriter(wavFileName, waveIn.WaveFormat);
waveIn.StartRecording();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-30 10:06:55

如果可能的话,最简单的方法是将它们分别捕获到文件中,然后稍后进行混合。

如果必须动态混合,为每个BufferedWaveProvider创建一个WaveIn,并在它们可用时编写示例。然后,这些BufferedWaveProviders都可以添加到MixingSampleProvider中(假设它们都是相同的信道计数和采样率)。棘手之处在于决定何时从MixingSampleProvider中读取。理想情况下,您希望WaveIn的每个实例都在其BufferedWaveProvider中存储一个装满音频的缓冲区,然后通过混频器提取该数量的音频。当所有的MixingSampleProvider中都有一定数量的数据时,您就可以有一个计时器在BufferedWaveProviders中滴答作响并通过它。

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

https://stackoverflow.com/questions/19676932

复制
相关文章

相似问题

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