本指南介绍了如何根据广告缓冲状态采取行动。
在应用中使用缓冲事件
您可以使用 IMAAdsManagerDelegate 中的以下委托方法,在广告暂停缓冲时向应用添加活动指示器:
- (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] 时显示活动指示器,并在 - (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event 中捕获 kIMAAdEvent_STARTED 时隐藏活动指示器。