gpt4 book ai didi

c# - NAudio 一起播放多个声音给出异常 "All mixer inputs must have the same WaveFormat"

转载 作者:行者123 更新时间:2023-11-30 16:12:10 27 4
gpt4 key购买 nike

我正在尝试使用 NAudio MixingSampleProvider 的 AddMixerInput 方法同时播放多个声音文件。我正在使用在此页面上找到的 AudioPlaybackEngine:https://gist.github.com/markheath/8783999

但是,当我尝试播放不同的文件时,我在播放一些声音时遇到异常:“所有混音器输入必须具有相同的 WaveFormat”这可能是因为我拥有的声音文件没有相同的采样率(我看到一些文件有 7046 作为采样率,而不是 44100)。

有没有办法修改CachedSound类,使读取文件时的采样率全部转换为44100?

谢谢!

最佳答案

如果不将音频流转换为相同的采样率,您就无法将它们混合在一起。在 NAudio 中,可以通过三种方式访问​​重采样器:

  • WaveFormatConversionStream - 这使用引擎盖下的 ACM 重采样器组件。请注意,您可能在使用此重采样 IEEE float 时遇到问题。
  • MediaFoundationResampler - 这使用 MediaFoundation。它允许您调整重采样质量。
  • WdlResamplingSampleProvider - 这是最新 NAudio 中的全新内容,并提供完全托管的重采样。

除了匹配的采样率,您还需要匹配的 channel 数。 NAudio 有多种方法可以将单声道转换为立体声,反之亦然。

关于c# - NAudio 一起播放多个声音给出异常 "All mixer inputs must have the same WaveFormat",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com