我试图直接从互联网上使用URL播放M4A(MP4音频)文件。
我使用n音讯与MediaFoundation实现这一目标:NAudio - MediaFoundationReader:构造函数不采用传递的m4a-URL(来自youtube-Link)
using (var reader = new MediaFoundationReader(audioUrl)) //exception
using (var wave = new WaveOutEvent())
{
wave.Init(reader);
wave.Play();
}
这非常适用于两个测试系统与Windows 8.1和Windows 10,但在我的Windows 7机器上它不工作,我得到的例外来自MediaFoundationReader
构造函数。
最初,我得到了ArgumentOutOfRangeException
。我测试了在WMP中播放这个m4a文件,它也无法播放它。我下载了一个编解码器包并安装了它。这帮助了WMP,但我的代码仍然是抛出一个异常,尽管另一个问题:
型 的“System.Runtime.InteropServices.COMException”未经检查的异常出现在NAudio.dll
其他信息:有更多的数据可用。 (例外从 HRESULT:0x800700EA)
任何想法可能会导致这种情况,我怎么能解决它?
我会去**调试\的Windows \例外设置**并将其配置为_Break在所有Exceptions_。检查内部例外情况应该能够更好地了解问题的可能性。 – jsanalytics
另外,通过使用Codeplex的源代码,我可以使用调试器遍历MediaFoundationReader()构造函数的代码,没有任何问题。我无法访问可用于重现异常的Windows7机器。 “不幸的是”在我的Windows 10机器下,一切正常。 – jsanalytics
无法在win7 sp1上重现。链接到文件? – cviejo