Перехват исключений MediaPlayer из элемента управления WPF MediaElement

Я воспроизводю видео в MediaElement в WPF.

Это работает 1000 раз, снова и снова.

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

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

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

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

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

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


person ScottCate    schedule 13.07.2009    source источник
comment
похоже, что это МОГУТ быть аппаратной проблемой.   -  person ScottCate    schedule 14.07.2009
comment
Попробуйте: обновите драйверы/посмотрите, поможет ли отключение DXVA.   -  person Erti-Chris Eelmaa    schedule 14.09.2014


Ответы (1)


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

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

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

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

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

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

person Jeremiah Morrill    schedule 11.10.2009