缓冲事件

本指南介绍了如何根据广告缓冲状态采取行动。

在应用中使用缓冲区事件

您可以在 IMAAdsManagerDelegate 上使用以下委托方法,在广告暂停缓冲时向应用添加 activity 指示器:

  • - (void)adsManagerAdDidStartBuffering(IMAAdsManager *)adsManager:在已开始播放的广告停止缓冲时调用。
  • - (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime:被称为广告缓冲区。只要广告正在缓冲,系统就会反复调用此方法。
  • - (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager:当当前广告有足够的缓冲区,以致广告播放不太可能超出缓冲区时调用。

示例

所有新增内容均基于 IMA SDK 高级示例(适用于 iOS 和 tvOS):

    @interface VideoViewController () <IMAAdsManagerDelegate,...>

    ...

    @end

    @implementation VideoViewController

    ...

    - (void)adsManagerAdDidStartBuffering:(IMAAdsManager *)adsManager {
      // Show your activity indicator above the video player - ad playback has
      // stopped to buffer.
    }

    - (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager {
      // Hide your activity indicator - as playback resumes.
    }

常见问题解答

我可以在广告开始播放之前显示活动指示器吗?

可以,但我们建议您针对该用例使用不同的代理方法。您可以在调用 [adsManager start] 时显示 activity 指示器,并在 - (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event 中捕获 kIMAAdEvent_STARTED 时隐藏 activity 指示器。