【问题标题】:Page not saving state of Media Element in WinRt页面未在 WinRt 中保存媒体元素的状态
【发布时间】:2013-06-05 13:45:37
【问题描述】:

我正在使用 MediaElement 控件在 C# 中试用 Widows Store 应用程序。我正在做的是播放视频,并且任何时候用户都可以暂停该视频并导航到其他页面。当它返回视频页面时,该视频将从其最后一个位置恢复。但在我的情况下,当用户导航回视频页面时,它会丢失视频播放器的所有状态,如播放时间、位置。代码片段如下。请检查并帮助我。

    public MainPage()
    {
        this.InitializeComponent();
        this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (e.NavigationMode == NavigationMode.Back)
        {

            if (VideoPlayer.CurrentState == MediaElementState.Paused)
            {
                VideoPlayer.Play();     // Video Player MediaElement
            }
        }
    }

    private void NavigateButton_Click(object sender, RoutedEventArgs e)
    {
        if (VideoPlayer.CurrentState != MediaElementState.Paused)
        {
            VideoPlayer.Pause();
            this.Frame.Navigate(typeof(SecondPage));
        }
    } 

【问题讨论】:

    标签: c# windows-runtime


    【解决方案1】:

    当您导航到一个页面时 - 默认情况下会创建一个新的页面实例。您可以将页面的 NavigationCacheMode 更改为启用以将其保留在内存中,但是您必须拥有页面的资源管理及其可能使用的所有内存的所有权。或者,您可能希望在离开页面时简单地保存该视频中的位置,并在返回后恢复该位置,这更有意义,因为它也可以在应用程序重新启动或终止和恢复后继续存在。

    【讨论】:

    • 感谢您的回答。如果您提供一些代码片段,这将非常有帮助。请
    猜你喜欢
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多