このガイドでは、広告のバッファリング状態に基づいてアクションを実行する方法について説明します。
アプリでバッファイベントを使用する
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
をキャッチしたときにアクティビティ インジケーターを非表示にできます。