Показать первый кадр видео в WPF MediaElement

У меня есть WPF-приложение с MediaElement, которое я использую для запуска видео. Я неЯ не хочу, чтобы видео автоматически воспроизводилось при загрузке, поэтому я установил для LoadedBehavior значение Manual.


Тем не мение; Я хочу, чтобы элемент показывал первый кадр видео при загрузке. Есть ли волшебный способ сделать это?

Ответы на вопрос(3)

Я могу't комментарий, так вот мой ответ: Очистка относится к обновлению визуализированного изображения, когда MediaElement приостановлен.

//Todo: Set your source

//if not stated in the xmal, you can still set this here.
Player.LoadedBehavior = MediaState.Manual;

//Turn scrubbing on
Player.ScrubbingEnabled = true;

Player.Pause();

Player.Position = TimeSpan.FromTicks(1);

Спасибо за чистящий совет!

Решение Вопроса

Вам также нужно

ScrubbingEnabled="True"

Затем установите событие на Load

Loaded="Video1_Loaded"

В метод Video1_Load добавьте следующее:

Video1.Play();
Video1.Pause();

Ни один из видеоконтента не воспроизводится до вызова метода воспроизведения. Таким образом, даже если вы установите позицию после первого кадра, вы не получите никаких данных.

я думаюMediaElement.ScrubbingEnabled Свойство является ключом.

Получает или задает значение, указывающее, будет ли MediaElement обновлять кадры для операций поиска во время паузы. Это свойство зависимости.

Я попробовал тот же подход без ScrubbingEnabled, но обнаружил, что первый кадр не будетт рендер. Не уверен, если этоЭто просто оборудование, которое я использую для этого. Еще один момент, который нужно помнить, заключается в том, что, как работает MediaElement, после того, как вы вызываете Play (), вы фактически не можете точно выполнять Pause () в первом кадре, поэтому вы можете уменьшить громкость в потоке перед вызовом Play и сбросить после вызова Пауза.

 stiank8130 авг. 2009 г., 19:35
Спасибо - это работает! Я должен сказать, что яМне не все удобно с триггером Play () Pause (). Видел, что кто-то другой тоже предложил это, но нашел подход немного "Hacky», Но если это единственный способ, я думаю, мыпридется жить с этим. ScrubbingEnabled - хорошая собственность, но неКажется, это не имеет ничего общего с показом первого видеокадра при запуске.

Ты ненеобходимо создать событие, см. ниже


 O. R. Mapper20 мар. 2015 г., 17:56
@AlexanderZwitbaum: позвонивPlay метод, основанный на каком-то другом событии, не связанном со встроенными кнопками?
 Alexander Zwitbaum16 мая 2012 г., 14:19
вы можете't управляет MediaElement с помощью play, stop ... Поэтому вы должны установить LoadedBehavior на ручной. если вы установите его на паузу, как бы вы начали играть?

Ваш ответ на вопрос