diff --git a/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs b/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs index c60d062d7078..d20e240e71f8 100644 --- a/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs +++ b/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs @@ -235,9 +235,19 @@ private async Task UpdatePreviewAsync(CancellationToken cancellationToken) partial void OnPreviewerChanging(IPreviewer? value) { - VideoPreview.MediaPlayer.Pause(); - VideoPreview.MediaPlayer.Source = null; - VideoPreview.Source = null; + // Properly dispose and recreate MediaPlayer to prevent black screen issue after viewing multiple videos + if (VideoPreview.MediaPlayer != null) + { + VideoPreview.MediaPlayer.Pause(); + VideoPreview.MediaPlayer.Source = null; + VideoPreview.Source = null; + + // Create a new MediaPlayer to ensure clean state for the next video + var oldMediaPlayer = VideoPreview.MediaPlayer; + VideoPreview.SetMediaPlayer(new Windows.Media.Playback.MediaPlayer()); + oldMediaPlayer.Dispose(); + } + AudioPreview.Source = null; ImagePreview.Source = null; ArchivePreview.Source = null;