Управление проигрывателем Windows Media (winforms) — захват текущего кадра в виде растрового изображения?

#c# #windows-media-player #wmplib

#c# #windows-media-player #wmplib

Вопрос:

Я использую управление проигрывателем Windows Media в приложении winforms, я хотел бы периодически записывать воспроизводимый кадр в растровое изображение и сохранять его локально. Предоставляет ли WMP текущий воспроизводимый кадр? Конечно, библиотека WMP должна отображать текущий кадр, но я искал его повсюду безрезультатно … пожалуйста, помогите.

p.s. Я ищу более элегантный подход, чем метод взлома захвата экрана и его обрезки.

Комментарии:

1. Теперь они могут намеренно использовать это как способ навязать DRM. Если бы вы могли захватывать кадр, вы могли бы непрерывно продвигать видео на 1 кадр за раз и захватывать все кадры, эффективно копируя видео. Вот как работали некоторые оригинальные копировальные устройства DVD с использованием framegrabbers. Звук может быть записан с помощью вывода звуковой карты. Как вы можете себе представить, у этих старых копировальных аппаратов было много проблем с синхронизацией звука и видео.

2. Есть ли способ извлечь кадр? Видео, над которым я работаю, не имеет DRM.

3. Я не уверен, поскольку я им не пользовался, я просто дал небольшой урок истории и объяснил, почему они могут просто явно не включать эту функциональность. Даже снимок экрана иногда дает странные результаты при воспроизведении видео в зависимости от типа видеокарты, драйвера и используемого метода рендеринга.

4. Хорошо, спасибо. Должен быть способ получить кадр…

Ответ №1:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/994554ec-219e-4090-9ddf-befd51bd4912

Ответ заключается в использовании DrawingVisual, DrawingConext и RenderTargetBitmap. Некоторое обсуждение этого выше.