status_t AudioOffloadPlayer::ChangeState(MediaDecoder::PlayState aState) { MOZ_ASSERT(NS_IsMainThread()); mPlayState = aState; switch (mPlayState) { case MediaDecoder::PLAY_STATE_PLAYING: { status_t err = Play(); if (err != OK) { return err; } StartTimeUpdate(); } break; case MediaDecoder::PLAY_STATE_PAUSED: case MediaDecoder::PLAY_STATE_SHUTDOWN: // Just pause here during play state shutdown as well to stop playing // offload track immediately. Resources will be freed by // MediaOmxCommonDecoder Pause(); break; case MediaDecoder::PLAY_STATE_ENDED: Pause(true); break; default: break; } return OK; }
void AudioOffloadPlayer::SetElementVisibility(bool aIsVisible) { MOZ_ASSERT(NS_IsMainThread()); mIsElementVisible = aIsVisible; if (mIsElementVisible) { AUDIO_OFFLOAD_LOG(PR_LOG_DEBUG, ("Element is visible. Start time update")); StartTimeUpdate(); } }