页面在WinRt中没有保存媒体元素的状态

本文关键字:媒体 保存 元素 状态 WinRt | 更新日期: 2023-09-27 18:17:12

我正在尝试一个寡妇商店应用程序在c#中,使用MediaElement控件。我正在做的是播放视频,任何时候用户都可以暂停视频并导航到其他页面。当它回到视频页面时,这个视频将从它最后的位置恢复。但在我的情况下,当用户导航回视频页面时,它失去了视频播放器的所有状态,如播放时间,位置。代码片段如下所示。请检查并帮助我。

    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));
        }
    } 

页面在WinRt中没有保存媒体元素的状态

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