NAudio:在保持声卡打开的同时播放许多音频文件

时间:2017-12-02 13:41:21

标签: naudio

在我的应用程序中,我必须播放许多短音频文件,这些文件都具有相同的采样率和通道数。我不想经常打开和关闭声卡。

我可以打开一次,然后为每个文件调用WaveOut.Init,然后调用WaveOut.Play。或者我可以使用MixingSampleProvider解释here(这允许我同时播放多个文件,但我不需要这样做。)

一种方法比另一种更好吗?每个人的优点/缺点是什么?最后一点:打开声卡可能会与其他应用程序冲突吗?

1 个答案:

答案 0 :(得分:1)

如果您使用WaveOut播放具有不同采样率和频道数的文件,那么为每个文件创建WaveOut的新实例会更容易。否则,您需要使用MediaFoundationResampler之类的内容将所有文件重新采样为相同的采样率。

如果所有文件的采样率和通道数相同,则可能更容易让一个输出设备保持打开状态。我推荐这样做的一个很好的例子就是你在游戏中播放声音效果。有一个永无止境的MixingSampleProvider正在连续播放,然后添加需要播放的声音。这对于短音来说特别有用。