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

问题描述 投票:1回答:1

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

MSDN page for UnloadedBehavior几乎没有任何帮助。我也阅读了这些MSDN页面:

c# wpf xaml mediaelement
1个回答
1
投票

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

如果要删除媒体元素,则必须释放内存及其使用的所有媒体资源。

你应该知道微软对Unloaded Event的描述。

假设您的mediaelement是网格的子节点并且您想要将其删除,那么有两种方法可以释放内存:

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

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

2 - 而不是上面的解决方案,你可以简单地设置UnloadedBehavior =“关闭”,所以它将自动close the media and releas all media resources (including video memory

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

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

但是,我同意Mostafa,因为我找不到关于另一个UnloadedBehaviors的清晰文档,比如播放,暂停和停止。

© www.soinside.com 2019 - 2024. All rights reserved.