private async void MediaPlayer_MediaOpenedAsync(FrameMediaPlayer sender, object args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { VideoElement.SetMediaPlayer(mediaPlayer.MediaPlayer); }); }
protected override void OnNavigatedTo(NavigationEventArgs e) { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; Uri sourceUri = (Uri)e.Parameter; if (sourceUri != null) { mediaPlayer = new MediaPlayer(); MediaSource source = MediaSource.CreateFromUri(sourceUri); mediaPlayer.Source = source; mediaPlayer.MediaOpened += MediaPlayer_MediaOpened; VideoElement.SetMediaPlayer(mediaPlayer); } }
protected override void OnNavigatedFrom(NavigationEventArgs e) { if (mediaPlayer != null) { mediaPlayer.PlaybackSession.PlaybackStateChanged -= PlaybackSession_PlaybackStateChanged; mediaPlayer.MediaOpened -= MediaPlayer_MediaOpened; } if (mtcGrid != null) { mtcGrid.PointerPressed -= OnPointerPressed; mtcGrid.PointerReleased -= OnPointerReleased; mtcGrid.PointerWheelChanged -= OnPointerWheelChanged; VideoElement.PointerPressed -= OnPointerPressed; VideoElement.PointerReleased -= OnPointerReleased; VideoElement.PointerMoved -= OnPointerMoved; VideoElement.PointerWheelChanged -= OnPointerWheelChanged; Window.Current.CoreWindow.KeyDown -= OnKeyDown; } SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; mediaPlayer.Source = null; VideoElement.SetMediaPlayer(null); mediaPlayer = null; }