Управление видео с помощью WPF MediaElement в C#

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

Следующий код XAML определяет MediaElement, используемый в этом примере.

Большая часть этого кода не требует пояснений. Имя элемента управления minionPlayer. Когда он заканчивает открытие некоторых носителей, в этом случае видео MP4 с именем «minions.mp4.»

Во время разработки я добавил этот видеофайл в проект и установил его свойство «Копировать в выходной каталог» в «Копировать, если новый». Таким образом, видео доступно в исполняемом каталоге, чтобы программа могла загрузить его в MediaElement .

Вероятно, наименее очевидным свойством в этом коде XAML является ScrubbingEnabled. Это свойство имеет значение true, чтобы позволить контроллеру обновлять его отображение, если видео переустанавливается, когда видео не работает. (Я понятия не имею, почему это называется «ScrubbingEnabled».)

Свойство LoadedBehavior установлено на Manual, поэтому видео не запускается, как только элемент управления загружается.

При запуске программа выполняет следующий код для подготовки к запуску видео.

Этот код создает новый DispatcherTimer для отслеживания прогресса видео. Он заканчивается вызовом метода MediaElement элемента управления MediaElement. Это позволяет контролировать нагрузку на носитель, чтобы вы могли его видеть. Если вы опускаете это утверждение, элемент управления невидим, а полоса прокрутки программы не показывает какую-либо позицию.

Следующий обработчик событий выполняется, когда файл мультимедиа заканчивает загрузку.

Этот код устанавливает свойства ScrollBar управления Minimum и Maximum, чтобы он мог представлять полную продолжительность видео.

Программа использует два вспомогательных метода: ShowPosition и EnableButtons. Следующий код показывает метод ShowPosition.

...

В следующем коде показан способ EnableButtons.

Этот метод включает или отключает кнопки воспроизведения и паузы в зависимости от того, воспроизводится ли видео. Например, если видео воспроизводится, кнопка воспроизведения отключена и кнопка Пауза включена.

Код устанавливает кнопки Opacity на 1.0 для активированных кнопок (поэтому они появляются нормально) и 0,5 для отключенных кнопок (поэтому они отображаются серым цветом).

Обработчик событий Tick таймера, показанный в следующем коде, просто вызывает ShowPosition для обновления отображения позиции.

Следующий код показывает, как кнопки управляют элементом управления MediaElement.

Код кнопок довольно понятен. Метод Play управления MediaElement запускает видео, его метод Pause останавливает его, а его метод Stop останавливает видео и перематывает начало.

Если видео не воспроизводится, вы можете ввести время в TextBox, а затем нажать кнопку Set Position. Когда вы это сделаете, выполняется следующий код.

Этот код преобразует время, введенное в TimeSpan, и устанавливает для него свойство Position игрока. Затем он вызывает ShowPosition для обновления отображения позиции.

Вот и все. MediaPlayer предоставляет множество функций для управления видео.

Источник: http://csharphelper.com/blog/2015/10/control-a-video-with-the-wpf-mediaelement-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *