WPF中MediaElement.UnloadedBehavior的用途是什么?

时间:2018-09-07 16:46:40

标签: c# wpf xaml mediaelement

我知道,通过设置LoadedBehavior="Play",将在容器窗口出现后立即播放媒体。或LoadedBehavior="Pause"将显示第一帧,并保持为已暂停状态。但是我不知道是使用Close以外的其他设置值。但是,设置UnloadedBehavior不会导致媒体屏幕自动变黑。

MSDN page for UnloadedBehavior几乎没有什么帮助。 我还阅读了以下MSDN页面:

1 个答案:

答案 0 :(得分:1)

UnloadedBehavior =“关闭”是非常有用的行为。

要删除中介元素时,必须释放内存及其已使用的所有媒体资源。

您应该了解Microsoft对Unloaded Event的描述。

假设您的中介元素是网格的子元素,并且您想要删除它,那么有两种释放内存的方法:

1-使用像这样的卸载事件:

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

2-代替上述解决方案,您只需设置UnloadedBehavior =“ Close” ,因此它将自动close the media and releas all media resources (including video memory)。

....................... 更新:

Microsoft关于UnloadedBehavior的说法: “ UnloadedBehavior。卸载媒体时就位。这确保默认情况下释放所有媒体资源,即使MediaClock与MediaElement关联也是如此。”

但是,我同意Mostafa的看法,因为我找不到关于play,pause和stop之类的另一个UnloadedBehaviors的清晰文档。