NAudio:在保持声卡打开的同时播放许多音频文件
NAudio: Playing many audio files while keeping the sound card opened
在我的应用程序中,我必须播放许多短音频文件,它们都具有相同的采样率和通道数。不想不停的开关声卡
我可以打开一次,然后为每个文件调用 WaveOut.Init
,然后调用 WaveOut.Play
。或者我可以按照 here 的解释使用 MixingSampleProvider
(这允许我同时播放多个文件,但我不需要那个)。
一种方法是否比另一种更好?每一个的 advantages/disadvantages 是多少?最后:打开声卡会不会和其他应用冲突?
如果您使用 WaveOut
播放具有不同采样率和通道数的文件,只需为每个文件创建一个 WaveOut
的新实例就会更容易。否则,您需要使用 MediaFoundationResampler
.
等将所有文件重新采样到相同的采样率
如果您的所有文件都具有相同的采样率和通道数,则始终打开一个输出设备可能会更容易。我推荐这样做的一个很好的例子是,如果你在游戏中播放音效。有一个永无止境的 MixingSampleProvider
连续播放,然后添加需要播放的声音。这对短音特别有帮助。
在我的应用程序中,我必须播放许多短音频文件,它们都具有相同的采样率和通道数。不想不停的开关声卡
我可以打开一次,然后为每个文件调用 WaveOut.Init
,然后调用 WaveOut.Play
。或者我可以按照 here 的解释使用 MixingSampleProvider
(这允许我同时播放多个文件,但我不需要那个)。
一种方法是否比另一种更好?每一个的 advantages/disadvantages 是多少?最后:打开声卡会不会和其他应用冲突?
如果您使用 WaveOut
播放具有不同采样率和通道数的文件,只需为每个文件创建一个 WaveOut
的新实例就会更容易。否则,您需要使用 MediaFoundationResampler
.
如果您的所有文件都具有相同的采样率和通道数,则始终打开一个输出设备可能会更容易。我推荐这样做的一个很好的例子是,如果你在游戏中播放音效。有一个永无止境的 MixingSampleProvider
连续播放,然后添加需要播放的声音。这对短音特别有帮助。