使用 NAudio 时出现 DirectX 源错误。我对 DirectX 不是很了解,所以希望得到一些指导。
在安装了 DirectX 12 的 Windows 10 PC 上初始化 NAudio 时收到的错误是:
NAudio.Dmo.DmoResampler..ctor System.Runtime.InteropServices.COMException:检索具有 CLSID {F447B69E-1884-4A7E-8055-346F74D6EDB3} 的组件的 COM 类工厂因以下错误而失败:80040154 未注册类(来自异常>HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。
NAudio.Dmo.DmoResampler..ctor
NAudio.Wave.ResamplerDmoStream..ctor IWaveProvider inputProvider, WaveFormat outputFormat
NAudio.Wave.WasapiOut.Init IWaveProvider waveProvider
Sound.Support.AudioPlaybackEngine..ctor MMDevice 设备,Int32 sampleRate,Int32 channelCount
Sound.Manager.PerformInitialization
分析.ViewModels.ApplicationViewModel.InitSoundManager
好的,很明显一些 COM 对象没有注册,那该怎么办呢?
这是调用 NAudio 的代码:
public AudioPlaybackEngine(MMDevice device, int sampleRate = 44100, int channelCount = 2)
{
Device = device;
mOutputDevice = new WasapiOut(device,
AudioClientShareMode.Shared,
true,
200);
mMixer = new MixingSampleProvider(WaveFormat.CreateIeeeFloatWaveFormat(sampleRate, channelCount))
{
ReadFully = true
};
mMixer.MixerInputEnded += OnMixerInputEnded;
mOutputDevice.Init(mMixer);
mOutputDevice.Play();
}
故障发生在第一次调用。
这在 DirectX 11 上运行良好,在任何平台上
有什么想法吗?