void MmRendererMediaPlayerControl::play() { if (m_playAfterMediaLoaded) m_playAfterMediaLoaded = false; // No-op if we are already playing, except if we were called from continueLoadMedia(), in which // case m_playAfterMediaLoaded is true (hence the 'else'). else if (m_state == QMediaPlayer::PlayingState) return; if (m_mediaStatus == QMediaPlayer::LoadingMedia) { // State changes are supposed to be synchronous setState(QMediaPlayer::PlayingState); // Defer playing to later, when the timer triggers continueLoadMedia() m_playAfterMediaLoaded = true; return; } // Un-pause the state when it is paused if (m_state == QMediaPlayer::PausedState) { setPlaybackRateInternal(m_rate); setState(QMediaPlayer::PlayingState); return; } if (m_media.isNull() || !m_connection || !m_context || m_audioId == -1) { setState(QMediaPlayer::StoppedState); return; } if (m_mediaStatus == QMediaPlayer::EndOfMedia) m_position = 0; setPositionInternal(m_position); setVolumeInternal(m_muted ? 0 : m_volume); setPlaybackRateInternal(m_rate); if (mmr_play(m_context) != 0) { setState(QMediaPlayer::StoppedState); emitMmError("mmr_play() failed"); return; } m_stopEventsToIgnore = 0; // once playing, stop events must be proccessed setState( QMediaPlayer::PlayingState); }
void BbMediaPlayerControl::pause() { if (m_state == QMediaPlayer::PlayingState) { setPlaybackRateInternal(0); setState(QMediaPlayer::PausedState); } }
void BbMediaPlayerControl::setPlaybackRate(qreal rate) { if (m_rate != rate) { m_rate = rate; setPlaybackRateInternal(m_rate); emit playbackRateChanged(m_rate); } }
void AnimationPlayer::reverse() { if (!m_playbackRate) { return; } setPlaybackRateInternal(-m_playbackRate); play(); }
void Animation::setPlaybackRate(double playbackRate) { if (playbackRate == m_playbackRate) return; PlayStateUpdateScope updateScope(*this, TimingUpdateOnDemand); setPlaybackRateInternal(playbackRate); }
void AnimationPlayer::setPlaybackRate(double playbackRate) { UseCounter::count(executionContext(), UseCounter::AnimationPlayerSetPlaybackRate); if (!std::isfinite(playbackRate)) return; if (playbackRate == m_playbackRate) return; PlayStateUpdateScope updateScope(*this, TimingUpdateOnDemand); setPlaybackRateInternal(playbackRate); }