このガイドでは、広告のバッファリングの状態に基づいて対応する方法について説明します。
アプリでバッファ イベントを使用する
IMAAdsManagerDelegate
で次のデリゲート メソッドを使用して、広告がバッファのために一時停止したときにアクティビティ インジケーターをアプリに追加できます。
- (void)adsManagerAdDidStartBuffering(IMAAdsManager *)adsManager
: すでに再生を開始している広告がバッファのために停止したときに呼び出されます。- (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime
: 広告バッファとして呼び出されます。このメソッドは、広告がバッファリングされている限り繰り返し呼び出されます。- (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager
: 現在の広告が十分にバッファリングされ、広告の再生がバッファを使い果たす可能性が低い場合に呼び出されます。
例
すべての追加は、IMA SDK Advanced サンプルに基づいています(iOS と tvOS の両方)。
@interface VideoViewController ()... @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
をキャッチするとアクティビティ インジケーターを非表示にできます。