NAudio 使用 WaveMixerStream32() 混合 2 两个音频->如何让第二个音频稍后开始

Posted

技术标签:

【中文标题】NAudio 使用 WaveMixerStream32() 混合 2 两个音频->如何让第二个音频稍后开始【英文标题】:NAudio mix 2 two audio togeter with WaveMixerStream32() -->how to let second audio start later 【发布时间】:2015-06-02 10:13:01 【问题描述】:

我试图通过两个音频文件的音频延迟进行简单的混合以开始工作。

我有两个音频。每个长度为 30 秒。如果将它们与 WaveMixerStream32 混合在一起,它们将相互叠加(混合波的长度为 30 秒)

 var mixer = new WaveMixerStream32  AutoStop = true;

 var readerAudio1 = new WaveFileReader("pathtoAudio1");
 var readerAudio2 = new WaveFileReader("pathtoAudio2");

 mixer.AddInputStream(new WaveChannel32(readerAudio1));
 mixer.AddInputStream(new WaveChannel32(readerAudio2));
 WaveFileWriter.CreateWaveFile("mycomposed.wav", new Wave32To16Stream(mixer));

是否可以延迟 10 秒开始音频 2-->这意味着结果将有 40 秒的长度。

我试过了

 var offset = new OffsetSampleProvider(readerAudio2);
 offset.DelayBy = TimeSpan.FromSeconds(10);

但不知道如何使用混音器来获得延迟。 有没有简单的方法来实现这一点?

感谢您的帮助。贾娜

【问题讨论】:

【参考方案1】:

如果你使用MixingSampleProvider进行混音,那么你可以和OffsetSampleProvider一起使用

【讨论】:

以上是关于NAudio 使用 WaveMixerStream32() 混合 2 两个音频->如何让第二个音频稍后开始的主要内容,如果未能解决你的问题,请参考以下文章

NAudio:正确使用 MixingSampleProvider 和 VolumeSampleProvider

使用 NAudio 进行频道映射

使用 NAudio 向法律挥手?

使用 NAudio 1.7+ 播放音频文件

使用 naudio 录制特定的应用程序音频

使用 NAudio 无法正确生成方波