Перехват исключений MediaPlayer из WPF MediaElement Control - PullRequest
0 голосов
/ 13 июля 2009

Я играю видео в MediaElement в WPF.

Он работает тысячи раз, снова и снова.

Однажды на голубой луне (например, раз в неделю) я получаю исключение для окон (вы знаете диалог доктора Ватсона Краш ??), которое происходит. MediaElment не выдает ошибку, он просто вылетает и сидит на экране с ужасным отчетом о сбое.

Если вы «просмотрите этот отчет», вы увидите, что на самом деле произошел сбой MediaPlayer. Я знаю, что могу отключить отображение отчетов о сбоях, но мне больше интересно узнать, что происходит не так.

Я не уверен, как запечатлеть результаты захвата доктора Ватсона, но у меня сейчас есть диалоговое окно, если у кого-то есть совет относительно лучшего способа съемки. Вот начальная строка данных, которая указывает на мое приложение, затем на wmvdecod.dll

AppName: ScottApp.exe AppVer: 2.2009.2291.805 AppStamp: 4a36c812 ModName: wmvdecod.dll ModVer: 11.0.5721.5145 ModStamp: 453711a3 fDebug: 0 Смещение: 000cbc88

И из журнала событий Win. (та же информация)

Тип события: ошибка Источник события: отчеты об ошибках .NET Runtime 2.0 Категория события: нет Код события: 1000 Дата: 13.07.2009 Время: 10:20:27 Пользователь: N / A Компьютер: 28022 Описание: Сбой приложения ScottApp.exe, версия 2.2009.2291.805, штамп 4a36c812, сбойный модуль wmvdecod.dll, версия 11.0.5721.5145, штамп 453711a3, отладка? 0, адрес ошибки 0x000cbc88.

1 Ответ

0 голосов
/ 11 октября 2009

Я считаю, что это ошибка в фильтре Windows Media Decoder. Я испытал такое же исключение в других медиаплеерах, которые НЕ используют MediaElement.

Это исключение исходит из собственного кода в потоке, к которому у вас нет доступа. Так что я не знаю, как отловить эти исключения.

Если вы хотите отправить подробный отчет об ошибке на сайт Microsoft Connect, попробуйте запустить эту утилиту после ее сбоя (DebugDiag): http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en

Добавьте «Правило сбоя» и просмотрите параметры для создания отчета о сбое. Я сделаю то же самое, и, возможно, они могут это исправить.

Обходное решение для вас, если это возможно, - найти стабильный кодек (divx?) И конвертировать файлы Windows Media в этот формат.

Вы можете столкнуться с разными результатами на разных графических процессорах, поскольку кодек WM будет использовать DXVA для аппаратного ускорения. Я думаю, что разные драйверы / GPU даст разную степень надежности.

...