浏览代码

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 年之前
父节点
当前提交
e81abbde7b
共有 1 个文件被更改,包括 1 次插入0 次删除
  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()