Prechádzať zdrojové kódy

VideoPlayer: Update the current timestamp on state changes

The state could change and cause a timestamp change without the video
frame event firing, which could desync the seek bar from the video's
actual time.
Zaggy1024 2 rokov pred
rodič
commit
79779aff18

+ 4 - 0
Userland/Applications/VideoPlayer/VideoPlayerWidget.cpp

@@ -135,6 +135,10 @@ void VideoPlayerWidget::open_file(StringView filename)
 
     m_playback_manager->on_playback_state_change = [this]() {
         update_play_pause_icon();
+        // If we are seeking, do not set the timestamp, as that will override the seek position.
+        if (!m_was_playing_before_seek && m_playback_manager->get_state() != Video::PlaybackState::Seeking) {
+            set_current_timestamp(m_playback_manager->current_playback_time());
+        }
     };
 
     m_playback_manager->on_decoder_error = [this](auto error) {