Какая польза от MediaElement.UnloadedBehavior в WPF? - PullRequest
0 голосов
/ 07 сентября 2018

Я знаю, что, установив LoadedBehavior="Play", медиа будет воспроизводиться сразу после появления окна контейнера. Или LoadedBehavior="Pause" покажет первый кадр и останется в состоянии приостановлено . Но что я не могу понять, так это использования значений настроек, отличных от Close для UnloadedBehavior. Однако установка UnloadedBehavior="Close" не приводит к автоматическому отключению экрана мультимедиа.

Страница MSDN для UnloadedBehavior почти не может помочь. Я также прочитал эти страницы MSDN:

1 Ответ

0 голосов
/ 09 сентября 2018

UnloadedBehavior = "Close" - очень полезное поведение.

Если вы хотите удалить медиаэлемент, вы должны освободить память и все медиаресурсы, которые он использовал.

Вы должны знать описание Microsoft Unloaded Event .

Предположим, ваш медиаэлемент является дочерним элементом сетки, и вы хотите удалить его. Тогда есть 2 способа освободить память:

1 - используя Unloaded Event, например:

private void mediaelement_Unloaded(object sender, RoutedEventArgs e)
            {
                  mediaelement.Unloaded -= mediaelement_Unloaded;
                  mediaelement.Source = null;
                  mediaelement.Close();
            }

2 - вместо вышеуказанного решения вы можете просто установить UnloadedBehavior = "Close" Таким образом, он закроет носитель и автоматически освободит все ресурсы мультимедиа (включая видеопамять ).

....................... ОБНОВЛЕНИЕ:

Microsoft о UnloadedBehavior говорит: «UnloadedBehavior. На месте, когда мультимедиа выгружается. Это гарантирует, что все медиаресурсы освобождаются по умолчанию, даже когда MediaClock связан с MediaElement.»

Но я согласен с Мостафой, потому что я не смог найти четкий документ о другом UnloadedBehaviors, как play, pause и stop.

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