2016-01-22 71 views
0

当播放存储器流含有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文件时,不会发生砰/噼啪:

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

请参阅[“应该在其标题中包含”标签?“](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共识是“不,他们不应该”! –

+0

@AndreasNiedermair谢谢你指出。 – Sylverdrag

回答

0

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

+0

谢谢!这就说得通了。 – Sylverdrag