使用MediaFoundationReader时出现COMException

时间:2014-10-11 16:24:13

标签: audio com naudio ms-media-foundation flac

我正在尝试使用NAudio和MS Media Foundation编解码器播放.flac音乐文件。但是每当歌曲结束或者接近尾声时,它都会抛出异常。有什么方法可以解决它或任何其他方式如何发挥flacs?

抛出异常

  

System.Runtime.InteropServices.COMException(0xC00D36E3):来自HRESULT的异常:0xC00D36E3

加载和播放音乐的代码

readerStream = new MediaFoundationReader(FilePath);
waveChannel = new WaveChannel32(readerStream);
readerStream = new DSPEffectStream(waveChannel, m_eqEffect);
postVolumeMeter = new MeteringSampleProvider(readerStream.ToSampleProvider());
waveOutDevice.Init(postVolumeMeter, true);

waveOutDevice.Play();

我发现有些人有类似的问题,但没有答案如何解决它。 Discussion link

1 个答案:

答案 0 :(得分:1)

0xC00D36E3为MF_E_BAD_STARTUP_VERSION "You are calling MFStartup with the wrong MF_VERSION. Mismatched bits?"。反过来means

  

如果MFStartup返回MF_E_BAD_STARTUP_VERSION,则表示您的应用程序是使用与您系统上的Media Foundation DLL不匹配的Media Foundation标头版本编译的。

这个问题应该与Media Foundation初始化有关,而且你没有明确地做到这一点,那么NAudio应该以某种方式错误地进行(或者过早地进行未初始化)。