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 năm trước cách đây
mục cha
commit
e81abbde7b
1 tập tin đã thay đổi với 1 bổ sung0 xóa
  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()