C# 使用axwindowsMediaPlayer创建播放列表时发生灾难性故障(HRESULT:0x8000FFFF的异常)
我正在使用axwindowsMediaPlayer对象在winform中显示视频。我特别想播放一个播放列表 在我的电脑(win7)上一切正常,在另一台使用winXP的电脑(最终用户的电脑)上也可以正常工作 但是几天前发生了一件事:在XP PC上,我开始收到以下消息C# 使用axwindowsMediaPlayer创建播放列表时发生灾难性故障(HRESULT:0x8000FFFF的异常),c#,exception,comexception,axwindowsmediaplayer,C#,Exception,Comexception,Axwindowsmediaplayer,我正在使用axwindowsMediaPlayer对象在winform中显示视频。我特别想播放一个播放列表 在我的电脑(win7)上一切正常,在另一台使用winXP的电脑(最终用户的电脑)上也可以正常工作 但是几天前发生了一件事:在XP PC上,我开始收到以下消息 Unhandled Exception: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) System.Runtime.Intero
Unhandled Exception:
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
System.Runtime.InteropServices.COMException
Stack Trace:
at WMPLib.IWMPPlaylistCollection.newPlaylist(String bstrName)
at BrinaS941.ScreenSaverVideo.ScreenSaver_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
下面是引发异常的代码:
private void ScreenSaverVideo_Load(object sender, EventArgs e)
{
WMPLib.IWMPPlaylist playlist = VideoPlayer.playlistCollection.newPlaylist("myplaylist");
WMPLib.IWMPMedia media;
VideoPlayer.uiMode = "none";
VideoPlayer.settings.volume = 10;
[....]
当应用程序运行时,异常开始出现,现在继续具有相同的行为
我试图在XP机器上重新安装Windows Media Player(11),但没有任何改变
更新:
我试着对与播放列表相关的部分代码进行注释(并使用“URL”方法设置想要播放的视频),一切正常。我真的很困惑
任何帮助都将不胜感激。
谢谢我终于找到问题了 我的错误是没有删除使用过的播放列表(使用iwmplaylacollection::remove方法) )。我意识到我的文件系统中有2000个播放列表(myplaylist.wpl,myplaylist(1).wpl,…,myplaylist(1999).wpl),可能有2000个限制 我不知道这是文件系统还是WMP的限制 删除所有文件后,一切又开始工作
谢谢大家的帮助 (1)您是否已通过代码查看错误点?(2) 您是否已检查“screensavervideo”是否与XP兼容?(3) 您尝试过“try catch”标题吗?(1)没有,因为在我的开发pc上没有发生错误。但我非常确定引发异常的行是“WMPLib.iwmplaylist playlist=VideoPlayer.playlcollection.newPlaylist(“myplaylist”);”,因为我尝试在之前移动行“VideoPlayer.uiMode=“none”;,并且它被正确执行。(2) 是的,因为它在两天前就正常工作了(3)我在try catch中插入了代码:因此我的应用程序不会崩溃,但视频从未播放在EventViewer中查看它可能会给你一个原因问题可能与我在一台装有Win7和Media Player 12的PC上开发有关,当应用程序使用媒体播放器11在Win XP上运行时,我在EventViewer中看不到任何有用的内容。据我所知,“WMPLib.iwmpliblaylcollection”是一个包含在我随应用程序分发的“Interop.WMPLib.dll”或“AxInterop.WMPLib.dll”中的对象。在电脑的dll中是否有任何可能被破坏的引用?谢谢,我刚刚遇到了同样的问题&现在已经解决了。如果我没有阅读你的答案,我绝对不可能找到这个问题的解决方案。感谢您回来发布解决方案。难以置信!!花了好几个月的时间。由于我在一个域中,并且由于某种原因,如果我通过shift/左键单击VS图标启动Visual Studio并以本地帐户用户身份运行,则异常不会引发问题。而且,我昨晚让我的应用程序运行了一整晚&我离开的时候一切都很好,今天我进来的时候,它被卡住了,一直被困在视频上(这是一个幻灯片放映,先播放图像,然后播放视频,然后重新开始)。现在一切都变得有意义了-通宵播放它创建了所有这些播放列表。。。非常感谢您发布此消息!!!!