在使用NAudio播放音频时从wav文件中获取样本

时间:2012-09-12 12:55:36

标签: naudio

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

我认为每当需要新的样本时,以某种方式可以使用回调填充BufferedWaveProvider样本,但我无法弄清楚如何。

我的另一个(非首选)想法是制作一个特殊版本的例如DirectSoundOut我可以在将样本写入声卡之前抓住它们。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在NAudio中播放音频文件时,您需要构建一个音频管道,从音频文件开始,然后沿着路径进行各种转换(例如更改音量),然后再输出到输出设备。实际上,NAudioDemo显示了如何通过绘制波形(预音量调整)和显示音量表(音量调整后)来访问样本。

例如,您可以创建IWaveProviderISampleProvider的实施者,并将其插入管道中。然后,在Read方法中,您从源代码中读取,然后您可以在将样本传递到管道中的下一个阶段之前处理或检查或写入磁盘。查看AudioPlaybackPanel.CreateInputStream以了解如何在演示中完成此操作。