diff --git a/src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/MediaPlayerExtension.cs b/src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/MediaPlayerExtension.cs index bd93f0a33609fed9e8008866a4810d9919bbba3a..2e084456f3e06086bc77e264fc00e69d5e9fc123 100644 --- a/src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/MediaPlayerExtension.cs +++ b/src/AddIns/Uno.UI.MediaPlayer.Skia.Gtk/MediaPlayerExtension.cs @@ -143,7 +143,16 @@ public partial class MediaPlayerExtension : IMediaPlayerExtension public void Pause() { - if (_owner.PlaybackSession.PlaybackState == MediaPlaybackState.Playing) + if (_owner.PlaybackSession.PlaybackState == MediaPlaybackState.Playing + && _player != null + && _player.CurrentState == MediaPlayerState.Playing) + { + _player?.Pause(); + _owner.PlaybackSession.PlaybackState = MediaPlaybackState.Paused; + } + if (_owner.PlaybackSession.PlaybackState == MediaPlaybackState.Paused + && _player != null + && _player.CurrentState != MediaPlayerState.Paused) { _player?.Pause(); _owner.PlaybackSession.PlaybackState = MediaPlaybackState.Paused; diff --git a/src/Uno.UI/UI/Xaml/Controls/MediaPlayerElement/MediaTransportControls.MediaPlayer.cs b/src/Uno.UI/UI/Xaml/Controls/MediaPlayerElement/MediaTransportControls.MediaPlayer.cs index 72b070cc4438f88634482175d06eacde1966cc7d..249dc7149e6c8bdc491e4aa7fb8ed7b989a00626 100644 --- a/src/Uno.UI/UI/Xaml/Controls/MediaPlayerElement/MediaTransportControls.MediaPlayer.cs +++ b/src/Uno.UI/UI/Xaml/Controls/MediaPlayerElement/MediaTransportControls.MediaPlayer.cs @@ -231,8 +231,8 @@ namespace Windows.UI.Xaml.Controls { _skipPlayPauseStateUpdate = false; - _mediaPlayer?.Pause(); ResetProgressSlider(); + _mediaPlayer?.Pause(); _mediaPlayer?.Stop(); }