2013-06-05 44 views
0

我正在嘗試使用MediaElement控件在C#中創建一個Widows Store應用程序。我正在做的是播放視頻,用戶可以暫停該視頻並導航到其他頁面。當它回到視頻頁面時,該視頻將從其最後的位置恢復。但在我的情況下,當用戶回到視頻頁面時,它會丟失視頻播放器的所有狀態,如播放時間,位置。代碼snipest在下面給出。請檢查並幫助我。在WinRt中不保存媒體元素的狀態

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

回答

0

當您導航到頁面時 - 默認情況下會創建頁面的新實例。您可以將頁面的NavigationCacheMode更改爲啓用以將其保存在內存中,但是必須擁有該頁面的資源管理以及它可能使用的所有內存的所有權。或者,您可能只想在離開頁面時簡單地保存該視頻中的位置,並在返回時恢復位置,這樣做更有意義,因爲它可以在應用程序重新啓動或終止並恢復之後繼續存在。

+0

感謝您的回答。如果您提供一些代碼snipest,這會非常有幫助。請 – Umar