1

我一直在看 NAudio 演示应用程序“音频文件播放”。我在这个演示中缺少的是一种在播放音频文件时获取样本的方法。

我认为,只要需要新样本,就可以使用回调以某种方式填充 BufferedWaveProvider 样本,但我不知道如何。

我的另一个(非首选)想法是制作一个特殊版本,例如 DirectSoundOut,我可以在其中获取样本,然后再将它们写入声卡。

有任何想法吗?

4

1 回答 1

1

通过 NAudio 中的音频文件播放,您可以构建一个音频管道,从您的音频文件开始,并在此过程中经历各种转换(例如,改变音量),然后最终到达您的输出设备。NAudioDemo 实际上确实通过绘制波形(音量前调整)和显示音量表(音量后调整)来展示如何沿途访问样本。

例如,您可以创建 or 的实现者IWaveProvider并将ISampleProvider其插入到管道中。然后,在该Read方法中,您从源代码读取,然后您可以处理或检查或将样本写入磁盘,然后再将它们传递到管道中的下一个阶段。查看AudioPlaybackPanel.CreateInputStream演示以了解这是如何完成的。

于 2012-09-13T06:10:46.360 回答