Surveiller les événements de mise en mémoire tampon des annonces

Ce guide explique comment agir en fonction de l'état de mise en mémoire tampon des annonces.

Utiliser des événements de mise en mémoire tampon dans votre application

Vous pouvez utiliser les méthodes déléguées suivantes sur IMAAdsManagerDelegate pour ajouter un indicateur d'activité à votre application lorsque les annonces sont mises en pause pour être mises en mémoire tampon :

  • - (void)adsManagerAdDidStartBuffering(IMAAdsManager *)adsManager : appelée lorsqu'une annonce qui a déjà commencé à être diffusée s'est arrêtée pour être mise en mémoire tampon.
  • - (void)adsManager:(IMAAdsManager *)adsManager adDidBufferToMediaTime:(NSTimeInterval)mediaTime: appelée lorsqu'une annonce est mise en mémoire tampon. Cette méthode est appelée de manière répétée tant qu'une annonce est mise en mémoire tampon.
  • - (void)adsManagerAdPlaybackReady:(IMAAdsManager *)adsManager : appelée lorsque l'annonce actuelle est suffisamment mise en mémoire tampon pour que la lecture de l'annonce ne risque pas de dépasser la mémoire tampon.

Exemple

Toutes les ajouts sont basés sur l' exemple avancé du SDK IMA (pour iOS et 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.
    }

Questions fréquentes

Puis-je afficher un indicateur d'activité avant le début de la diffusion de mon annonce ?

Oui, mais nous vous recommandons d'utiliser différentes méthodes déléguées pour ce cas d'utilisation. Vous pouvez afficher l'indicateur d'activité lorsque vous appelez [adsManager start], et le masquer lorsque vous capturez kIMAAdEvent_STARTED dans - (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event.