LibMedia+LibWeb: Implement media pausing/resuming

This commit is contained in:
Zaggy1024 2025-09-27 15:13:45 -05:00 committed by Jelle Raaijmakers
parent 3ebaa0cd3f
commit ee587cfec4
3 changed files with 17 additions and 3 deletions

View File

@ -92,7 +92,6 @@ PlaybackManager::PlaybackManager(NonnullRefPtr<MutexedDemuxer> const& demuxer, N
, m_audio_tracks(audio_tracks)
, m_audio_track_datas(audio_track_datas)
{
m_time_provider->resume();
}
PlaybackManager::~PlaybackManager()
@ -207,4 +206,14 @@ void PlaybackManager::disable_an_audio_track(Track const& track)
m_audio_sink->set_provider(track, nullptr);
}
void PlaybackManager::play()
{
m_time_provider->resume();
}
void PlaybackManager::pause()
{
m_time_provider->pause();
}
}

View File

@ -60,6 +60,9 @@ public:
void enable_an_audio_track(Track const& track);
void disable_an_audio_track(Track const& track);
void play();
void pause();
Function<void(DecoderError&&)> on_error;
private:

View File

@ -1775,7 +1775,8 @@ void HTMLMediaElement::notify_about_playing()
resolve_pending_play_promises(promises);
});
// FIXME: Implement resuming in PlaybackManager.
if (m_playback_manager)
m_playback_manager->play();
if (m_audio_tracks->has_enabled_track())
document().page().client().page_did_change_audio_play_state(AudioPlayState::Playing);
@ -1800,7 +1801,8 @@ void HTMLMediaElement::set_paused(bool paused)
m_paused = paused;
if (m_paused) {
// FIXME: Implement pausing in PlaybackManager.
if (m_playback_manager)
m_playback_manager->pause();
if (m_audio_tracks->has_enabled_track())
document().page().client().page_did_change_audio_play_state(AudioPlayState::Paused);