0

NAudio を使用すると、DirectX ソース エラーが発生します。私は DirectX に関してはそれほど知識がありませんので、いくつかの指針をいただければ幸いです。

DirectX 12 がインストールされた Windows 10 PC で NAudio を初期化するときに受け取るエラーは次のとおりです。

NAudio.Dmo.DmoResampler..ctor System.Runtime.InteropServices.COMException: CLSID {F447B69E-1884-4A7E-80​​55-346F74D6EDB3} を持つコンポーネントの COM クラス ファクトリの取得は、次のエラーにより失敗しました: 80040154 クラスが登録されていません (Exception from >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

Analyze.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 でも問題なく動作します。

何かご意見は?

4

1 に答える 1