Browse Source

LibWeb: Explicitly set the audio element playback position after seeking

The audio element behaves a bit differently than the video element in
that the audio element drives itself on a timer (as opposed to LibVideo
notifying the video element when a frame is available). So if an audio
element is paused while seeking, we wouldn't receive an updated playback
position until the element is unpaused.

This fixes an issue where you would have to click the play button twice
to re-start an audio track after it reached the end.
Timothy Flynn 2 years ago
parent
commit
e81abbde7b
1 changed files with 1 additions and 0 deletions
  1. 1 0
      Userland/Libraries/LibWeb/HTML/AudioTrack.cpp

+ 1 - 0
Userland/Libraries/LibWeb/HTML/AudioTrack.cpp

@@ -98,6 +98,7 @@ void AudioTrack::seek(double position, MediaSeekMode seek_mode)
     position = position / duration * static_cast<double>(m_loader->total_samples());
 
     m_loader->seek(position).release_value_but_fixme_should_propagate_errors();
+    m_media_element->set_current_playback_position(this->position().to_milliseconds() / 1000.0);
 }
 
 void AudioTrack::update_volume()