Катастрофический сбой (исключение из HRESULT: 0x8000FFFF) при создании списка воспроизведения с помощью axwindowsMediaPlayer
Я использую объект axwindowsMediaPlayer, чтобы показать видео в форме win. В частности, я хочу играть в плейлист.
Все отлично работает на моем ПК (win7) и раньше нормально работало и на другом ПК с winXP (ПК конечного пользователя).
Но что-то случилось пару дней назад: на ПК с XP я начал получать следующие исключения
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;
[....]
Исключение стало возникать во время работы приложения, и теперь оно продолжает работать так же.
Я попытался переустановить Windows Media Player (11) на компьютере с XP, но ничего не изменилось.
ОБНОВИТЬ:
Я попытался прокомментировать часть кода, относящуюся к плейлисту (и использовал метод "URL", чтобы установить видео для воспроизведения), и все работает нормально. Я действительно озадачен...
Любая помощь могла бы быть полезна. Спасибо
1 ответ
Я наконец нашел проблему!
Моя ошибка не состояла в том, чтобы удалить плейлист, который использовался (с помощью метода IWMPPlaylistCollection::remove). Я понял, что у меня в моей файловой системе 2000 плейлистов ( myplaylist.wpl, myplaylist(1).wpl,..., myplaylist(1999).wpl) и, возможно, существует ограничение 2000.
Я не знаю, является ли это пределом файловой системы или WMP.
После удаления всех файлов все снова заработало.
Спасибо всем за вашу помощь!