如何水印与NAudio的波文件?



我的应用程序输出波文件,我有实现水印的需求。我指的是另一个wave文件,其中包含4秒钟的内容,有人说"这个文件是受版权保护的材料";并且每隔30秒将其叠加到原始文件中。

我试过很多方法,但都不太奏效。我可以使用OffsetSampleProvider将水印填充到30秒,并将其与MixingSampleProvider混合,但这只会混合在一个副本中。

LoopStreamWaveStream,而不是ISampleProvider,即使我能做转换,我认为这将永远混合,因为LoopStream永远不会停止返回数据。

这似乎是一个相当基本的用例,但我不知道如何做到这一点!

你离得不远。您可以使用ToSampleProvider扩展方法将LoopStream转换为ISampleProvider,然后您可以使用Take扩展方法来限制循环流的持续时间,以匹配与之混合的文件的持续时间。

最新更新