diff --git a/Libraries/LibMedia/PlaybackManager.cpp b/Libraries/LibMedia/PlaybackManager.cpp index ffb7722ea2a..57bac0a8581 100644 --- a/Libraries/LibMedia/PlaybackManager.cpp +++ b/Libraries/LibMedia/PlaybackManager.cpp @@ -92,7 +92,6 @@ PlaybackManager::PlaybackManager(NonnullRefPtr 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(); +} + } diff --git a/Libraries/LibMedia/PlaybackManager.h b/Libraries/LibMedia/PlaybackManager.h index d334e4fe813..5edbc9b1652 100644 --- a/Libraries/LibMedia/PlaybackManager.h +++ b/Libraries/LibMedia/PlaybackManager.h @@ -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 on_error; private: diff --git a/Libraries/LibWeb/HTML/HTMLMediaElement.cpp b/Libraries/LibWeb/HTML/HTMLMediaElement.cpp index 8fb73072164..5bc17a8e0ac 100644 --- a/Libraries/LibWeb/HTML/HTMLMediaElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLMediaElement.cpp @@ -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);