【问题标题】:pop at the beginning of playback在播放开始时弹出
【发布时间】:2023-03-03 20:50:01
【问题描述】:

播放包含 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 和音频的新手,所以这可能有点傻,但我似乎无法弄清楚。

【问题讨论】:

标签: naudio noise


【解决方案1】:

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

【讨论】:

  • 谢谢!这是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多