2017-01-02 32 views
0

NAudioを使用すると、DirectXソースエラーが発生します。私はそれがDirectXになると知識がないので、いくつかの指摘を感謝します。 DirectXの12をインストールしたWindows 10 PCにNAudio初期化なったときに、私は受け付けておりNAudioとDirectX 12

ありエラーはこれです:

NAudio.Dmo.DmoResampler..ctor System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {F447B69E-1884-4A7E-8055-346F74D6EDB3} failed due to the following error: 80040154 Class not registered (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 device, 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の上だけで正常に動作?

答えて

3

Windows 10にはDirectX 9.0c〜DirectX 12がすべて並んでいます。これはおそらくメディア財団の質問と考えられます。

GUID({F447B69E-1884-4A7E-8055-346F74D6EDB3})は、リサンプラDMO(DirectX Media Objects)のようです。 DMOsは、Media Foundation APIによって今日主に使用されているレガシーDirectShowテクノロジの一部でした。「DirectShow」がもともと「ActiveMovie」と呼ばれていたことから、DirectXブランドとなった苦しい歴史はありません。技術は2005年のDirectX SDKのremovedでした。

したがって、私の質問は次のようになります:NまたはKN版のWindows 10を使用していますか?この場合、デフォルトでMedia Foundationは含まれていません。あなたはRestore Packでインストールする必要があります。 Who moved my Windows Media Cheese?を参照してください。

You can try using this sample program to ensure the GUID is present on your machine.

は、あなたはまた、あなたに影響を与えることができ利用可能な変換にはいくつかの制限があるかもしれません、ユニバーサルのWindowsプラットフォーム(UWP)アプリではなく、古典的なWin32のデスクトップアプリを開発している場合。

+0

問題を抱えているお客様が米国にあり、2台の異なるマシンで表示されていることは間違いです。少なくともこれは私に問題を見つけるのを止める道を与えます。 (このようなものがあれば、これは普通のWPFアプリです)。ポインタをありがとう。 – WyomingDoug

関連する問題