Skip to content

Commit ee587cf

Browse files
Zaggy1024gmta
authored andcommitted
LibMedia+LibWeb: Implement media pausing/resuming
1 parent 3ebaa0c commit ee587cf

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

Libraries/LibMedia/PlaybackManager.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ PlaybackManager::PlaybackManager(NonnullRefPtr<MutexedDemuxer> const& demuxer, N
9292
, m_audio_tracks(audio_tracks)
9393
, m_audio_track_datas(audio_track_datas)
9494
{
95-
m_time_provider->resume();
9695
}
9796

9897
PlaybackManager::~PlaybackManager()
@@ -207,4 +206,14 @@ void PlaybackManager::disable_an_audio_track(Track const& track)
207206
m_audio_sink->set_provider(track, nullptr);
208207
}
209208

209+
void PlaybackManager::play()
210+
{
211+
m_time_provider->resume();
212+
}
213+
214+
void PlaybackManager::pause()
215+
{
216+
m_time_provider->pause();
217+
}
218+
210219
}

Libraries/LibMedia/PlaybackManager.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ class MEDIA_API PlaybackManager final : public AtomicRefCounted<PlaybackManager>
6060
void enable_an_audio_track(Track const& track);
6161
void disable_an_audio_track(Track const& track);
6262

63+
void play();
64+
void pause();
65+
6366
Function<void(DecoderError&&)> on_error;
6467

6568
private:

Libraries/LibWeb/HTML/HTMLMediaElement.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1775,7 +1775,8 @@ void HTMLMediaElement::notify_about_playing()
17751775
resolve_pending_play_promises(promises);
17761776
});
17771777

1778-
// FIXME: Implement resuming in PlaybackManager.
1778+
if (m_playback_manager)
1779+
m_playback_manager->play();
17791780

17801781
if (m_audio_tracks->has_enabled_track())
17811782
document().page().client().page_did_change_audio_play_state(AudioPlayState::Playing);
@@ -1800,7 +1801,8 @@ void HTMLMediaElement::set_paused(bool paused)
18001801
m_paused = paused;
18011802

18021803
if (m_paused) {
1803-
// FIXME: Implement pausing in PlaybackManager.
1804+
if (m_playback_manager)
1805+
m_playback_manager->pause();
18041806

18051807
if (m_audio_tracks->has_enabled_track())
18061808
document().page().client().page_did_change_audio_play_state(AudioPlayState::Paused);

0 commit comments

Comments
 (0)