我知道通过设置LoadedBehavior="Play"
,媒体将在容器窗口出现后立即播放。或者LoadedBehavior="Pause"
将显示第一帧并保持暂停状态。但我无法弄清楚的是使用除Close
以外的设置值来为UnloadedBehavior
。但是,设置UnloadedBehavior="Close"
不会导致媒体屏幕自动变为空白。
MSDN page for UnloadedBehavior几乎没有任何帮助。我也阅读了这些MSDN页面:
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的清晰文档,比如播放,暂停和停止。