Как воспроизводить видео на странице WPF, которая часто изменяется, и видео должно воспроизводиться при загрузке страницы - PullRequest
0 голосов
/ 07 мая 2019

Недавно я столкнулся с проблемой с WPF, когда при использовании MediaElement на странице WPF, которая инициализируется более одного раза, она не уничтожается из памяти или мигает черный фон, пока он находится всостояние непосредственно перед окончательной загрузкой и в моем пользовательском уничтожении

Для этой цели я создал оболочку, на каждой странице, где я использовал MediaElement, в конструкторе я создал экземпляр своей оболочки, которая добавлялаMediaElement к статическому общедоступному массиву других MediaElements и сохранял его там одновременно, пока я не вызвал RemoveAll (), который обновил память.Это не было бы проблемой, но когда я начал использовать это, я заметил, что это действительно медленно.Мое видео было загружено через 1 секунду, и оно никогда не кэшировалось (даже до использования моей обертки, я не знаю, как это сделать), и пользователь мог видеть этот черный фон непосредственно перед его воспроизведением и всякий раз, когда я вызывал RemoveAll (),на секунду.

В моем тестовом примере приложения мое MainWindow содержит:

<Grid>
   <Frame x:Name="mainFrame"/>
</Grid>

, затем есть TestPage, по которому я перемещаюсь () по кнопке на другой странице "по умолчанию"На TestPage я пробую видео.Код TestPage:

<MediaElement Source="video/Test.mp4" Opacity="1" Volume="0" LoadedBehavior="Manual" Height="326" Width="580" x:Name="media" 
                      UnloadedBehavior="Manual" Stretch="Fill"/>

В моей оболочке я подписываюсь на события, подобные MediaEnded, поэтому я могу повторно воспроизводить видео, вызывая media.Play(); при срабатывании MediaEnded.

Но у меня остается та же самая проблема, решение которой я не нашел.Если кто-то найдет способ, может быть, кроме использования MediaElement, я был бы благодарен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...