C# 使用axwindowsMediaPlayer创建播放列表时发生灾难性故障(HRESULT:0x8000FFFF的异常)

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

我正在使用axwindowsMediaPlayer对象在winform中显示视频。我特别想播放一个播放列表

在我的电脑(win7)上一切正常,在另一台使用winXP的电脑(最终用户的电脑)上也可以正常工作

但是几天前发生了一件事:在XP PC上,我开始收到以下消息

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并以本地帐户用户身份运行,则异常不会引发问题。而且,我昨晚让我的应用程序运行了一整晚&我离开的时候一切都很好,今天我进来的时候,它被卡住了,一直被困在视频上(这是一个幻灯片放映,先播放图像,然后播放视频,然后重新开始)。现在一切都变得有意义了-通宵播放它创建了所有这些播放列表。。。非常感谢您发布此消息!!!!