2016-01-22 67 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