Создание универсального видеоплеера (XP, Vista, 7) - PullRequest
1 голос
/ 09 февраля 2012

Я пытаюсь создать медиаплеер (в C # .net 4.0), который будет работать на Windows XP (SP3), Vista и 7. Обычно я бы просто пошел простым путем и использовал собственный MediaElement в WPF, но, поскольку он опирается наWindows Media Player 10 или новее, который не работает как Windows XP SP3, может иметь только WPM9.

Сначала я попытался загрузить пример приложения Jerkiah Morill WPF MediaKit, но при этом использовался EVR, который не будет отображаться на моей тестовой машине (только для Windows XP SP3 с кодеками по умолчанию и программами по умолчанию, а также с различными установками .Net Framework),Я также скачал двоичные файлы и разорвал их, создав новый проект только со ссылкой на DirectShow-dll и минимумами из комплекта WPF mediakit, на этот раз без ссылки на EVR.Все еще не повезло.Это мне трудно понять - разве Windows XP не может воспроизводить фильмы с использованием VMR прямо из коробки?

Я нашел несколько примеров медиаплееров, где один из них работает.Этот файл называется DxPlay и использует построитель графов Directshow, но он построен в winforms, имеет довольно грубый код и не будет масштабировать, искать, обрабатывать аудио и в целом выглядит довольно схематично.

Итак, есть ли простой способ создать медиаплеер, который будет воспроизводиться на всех упомянутых платформах, не нажимая WMP10 +?Я возлагал большие надежды на WPF MediaKit, но что-то мешает его воспроизведению в Windows XP SP3 (любое решение для этого было бы очень интересно).

Заранее большое спасибо!

-ruNury

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Я бы попробовал обернуть медиаплеер VLC в ваш .Net проект.

Вот некоторые проекты .Net, которые могут вам помочь:

0 голосов
/ 27 октября 2015

MSDN предлагает EVR (Enhanced Video Renderer) для вывода видео в системах, где это поддерживается: Windows Vista и более поздние версии. С его введением его предшественники - фильтр Video Mixing Renderer (версии 7 и 9) были вырезаны для плавного масштабирования видео. Микширование видео Renderer 7 также менее способен с точки зрения настройки, однако он потребляет гораздо меньше ресурсов (не использует Direct 3D), и вы можете выводить гораздо больше видео одновременно.

Ваше стандартное решение здесь состоит в том, чтобы поддерживать как VMR, так и EVR и использовать последний, начиная с Windows Vista, в противном случае отступите к первому.

EVR «неофициально» установлен в Windows XP со средой выполнения .NET и может использоваться с трюком для создания экземпляра: соответствующая DLL не зарегистрирована в COM и вы не можете создать экземпляр с помощью CoCreateInstance API, однако у вас все получится сделать CoLoadLibrary, DllGetClassObject и друзей.

Для разработки на C # вы обычно используете DirectShow через DirectShow.NET Library .

...