在播放开始时弹出

时间:2016-01-22 12:08:07

标签: naudio noise

当播放包含wav编码音频的内存流时,播放以尖锐的弹出/噼啪声开始:

ms = new MemoryStream(File.ReadAllBytes(audio_filename));
[...]
dispose_audio();
sound_output = new DirectSoundOut();
IWaveProvider provider = new RawSourceWaveStream(ms, new WaveFormat());
sound_output.Init(provider);
sound_output.Play();

直接播放wav文件时不会出现pop / crackle:

dispose_audio();
NAudio.Wave.WaveStream pcm = new WaveChannel32(new NAudio.Wave.WaveFileReader(audio_filename));
audio_stream = new BlockAlignReductionStream(pcm);
sound_output = new DirectSoundOut();
sound_output.Init(audio_stream);
sound_output.Play();

正在播放相同的文件,但是当wav数据首先存储在内存流中时,播放开始时会有一些响亮的声音。

我非常喜欢NAudio和音频的新手,所以它可能是愚蠢的,但我似乎无法弄明白。

1 个答案:

答案 0 :(得分:0)

您正在播放WAV文件标题,就像它是音频一样。您需要使用RawSourceWaveStream,而不是WaveFileReader,只需传入内存流。

相关问题