0

我正在使用 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));
        }
    } 
4

1 回答 1

0

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

于 2013-06-05T05:45:37.410 回答