mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibMedia+LibWeb: Implement media pausing/resuming
This commit is contained in:
parent
3ebaa0cd3f
commit
ee587cfec4
Notes:
github-actions[bot]
2025-10-28 00:34:31 +00:00
Author: https://github.com/Zaggy1024
Commit: ee587cfec4
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6410
Reviewed-by: https://github.com/R-Goc
Reviewed-by: https://github.com/gmta ✅
3 changed files with 17 additions and 3 deletions
|
|
@ -92,7 +92,6 @@ PlaybackManager::PlaybackManager(NonnullRefPtr<MutexedDemuxer> const& demuxer, N
|
||||||
, m_audio_tracks(audio_tracks)
|
, m_audio_tracks(audio_tracks)
|
||||||
, m_audio_track_datas(audio_track_datas)
|
, m_audio_track_datas(audio_track_datas)
|
||||||
{
|
{
|
||||||
m_time_provider->resume();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlaybackManager::~PlaybackManager()
|
PlaybackManager::~PlaybackManager()
|
||||||
|
|
@ -207,4 +206,14 @@ void PlaybackManager::disable_an_audio_track(Track const& track)
|
||||||
m_audio_sink->set_provider(track, nullptr);
|
m_audio_sink->set_provider(track, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PlaybackManager::play()
|
||||||
|
{
|
||||||
|
m_time_provider->resume();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlaybackManager::pause()
|
||||||
|
{
|
||||||
|
m_time_provider->pause();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,9 @@ public:
|
||||||
void enable_an_audio_track(Track const& track);
|
void enable_an_audio_track(Track const& track);
|
||||||
void disable_an_audio_track(Track const& track);
|
void disable_an_audio_track(Track const& track);
|
||||||
|
|
||||||
|
void play();
|
||||||
|
void pause();
|
||||||
|
|
||||||
Function<void(DecoderError&&)> on_error;
|
Function<void(DecoderError&&)> on_error;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -1775,7 +1775,8 @@ void HTMLMediaElement::notify_about_playing()
|
||||||
resolve_pending_play_promises(promises);
|
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())
|
if (m_audio_tracks->has_enabled_track())
|
||||||
document().page().client().page_did_change_audio_play_state(AudioPlayState::Playing);
|
document().page().client().page_did_change_audio_play_state(AudioPlayState::Playing);
|
||||||
|
|
@ -1800,7 +1801,8 @@ void HTMLMediaElement::set_paused(bool paused)
|
||||||
m_paused = paused;
|
m_paused = paused;
|
||||||
|
|
||||||
if (m_paused) {
|
if (m_paused) {
|
||||||
// FIXME: Implement pausing in PlaybackManager.
|
if (m_playback_manager)
|
||||||
|
m_playback_manager->pause();
|
||||||
|
|
||||||
if (m_audio_tracks->has_enabled_track())
|
if (m_audio_tracks->has_enabled_track())
|
||||||
document().page().client().page_did_change_audio_play_state(AudioPlayState::Paused);
|
document().page().client().page_did_change_audio_play_state(AudioPlayState::Paused);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue