Объект Windows Media в элементе управления C # WebBrowser с настраиваемым фильтром DirectShow в Windows 7 - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть объект Windows Media в элементе управления C # WebBrowser.Мы получили то, что в основном являются файлами .AVI, и файлы получили собственный заголовок.Для их воспроизведения у нас есть специальный фильтр DirectShow.

Видео можно воспроизводить в проигрывателе Windows Media, а также в объекте проигрывателя Windows Media в IE9 в Windows 7 и в IE8 в Windows XP.

Воспроизведение видео также успешно выполняется во встроенном элементе управления C # WebBrowser в XP, но не в Windows 7. При попытке использовать объект проигрывателя Windows Media в элементе управления C # WebBrowser в Windows 7 мы получаем сообщение: «WindowsMedia Player не может воспроизвести файл. Проигрыватель может не поддерживать тип файла или может не поддерживать кодек, который использовался для сжатия файла. "

Каждый раз это один и тот же код, поэтому у кого-либо есть идеипочему конкретная комбинация фильтров Windows 7, элемента управления WebBrowser и пользовательских DirectShow не воспроизводит видео, когда везде работает правильно?

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Проблема заключалась в том, что наш DirectShow Filter был построен только как x86 DLL. По какой-то причине элемент управления WebBrowser в C # по умолчанию использует 64-битный бэкэнд IE, если он доступен, и эта версия не будет работать с созданной нами библиотекой x86, потому что объект WMP просматривал записи реестра только для 64-битных версий Filters.

Установив конфигурацию сборки в Visual Studio для целевого процессора "x86", а не для "Любого процессора" для приложения, которое выполняет элемент управления WebBrowser, вы можете гарантировать, что даже в 64-разрядной версии Windows элемент управления WebBrowser использует 32-битный сервер.

Кажется, у многих людей была такая же проблема с Flash, прежде чем для него была доступна 64-битная сборка.

1 голос
/ 29 сентября 2011

Вам нужно больше отладки, чтобы понять, что происходит.Прежде всего, вам необходимо проверить, подхватывает ли воспроизведение вообще фильтр DirectShow, какие методы вызываются, есть ли какие-либо ошибки, чем это отличается от других систем, где воспроизведение происходит успешно.

...