返回介绍

3.5 pause

发布于 2024-12-23 21:17:30 字数 1069 浏览 0 评论 0 收藏 0

pause 对应到 AwesomePlayer 中是 pause_l 这个方法:

status_t AwesomePlayer::pause_l(bool at_eos) {
	...
	// 通知客户端播放器暂停
  notifyListener_l(MEDIA_PAUSED);
  mMediaRenderingStartGeneration = ++mStartGeneration;
	// cancel 播放视频的队列
  cancelPlayerEvents(true /* keepNotifications */);
  if (mAudioPlayer != NULL && (mFlags & AUDIO_RUNNING)) {
    // If we played the audio stream to completion we
    // want to make sure that all samples remaining in the audio
    // track's queue are played out.
    mAudioPlayer->pause(at_eos /* playPendingSamples */);
    // send us a reminder to tear down the AudioPlayer if paused for too long.
    if (mOffloadAudio) {
      postAudioTearDownEvent(kOffloadPauseMaxUs);
    }
    modifyFlags(AUDIO_RUNNING, CLEAR);
  }
  if (mFlags & TEXTPLAYER_INITIALIZED) {
    mTextDriver->pause();
    modifyFlags(TEXT_RUNNING, CLEAR);
  }
  modifyFlags(PLAYING, CLEAR);
  if (mDecryptHandle != NULL) {
    mDrmManagerClient->setPlaybackStatus(mDecryptHandle,
        Playback::PAUSE, 0);
  }
	...
  return OK;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文