Marcadores de livros

Neste guia, mostramos como implementar a adição de favoritos usando o SDK de DAI do IMA ao usar a Inserção de anúncios dinâmicos (DAI) para streams de vídeo on demand (VOD). Isso pressupõe uma implementação de DAI do IMA, como a apresentada em Começar.

O que são favoritos?

Adicionar aos favoritos é a capacidade de salvar e depois voltar a um ponto específico no stream de conteúdo. Suponha que um usuário assista a cinco minutos de conteúdo, saia do stream de vídeo e depois volte a ele. Ao adicionar os favoritos, a posição do usuário no stream é salva para que o stream possa continuar de onde parecia, proporcionando uma experiência perfeita ao espectador.

Criação de favoritos da DAI em segundo plano

Ao adicionar um stream DAI aos favoritos, é necessário registrar o ID do stream e a hora em que o usuário sai do vídeo. Quando o usuário retornar, solicite o stream novamente e procure o horário salvo. Como cada instância do stream solicitado pode ter intervalos de anúncios de durações diferentes, simplesmente economizar tempo de stream não funcionará. O que você realmente quer fazer é continuar a partir do mesmo horário do conteúdo.

Métodos de conversão para o resgate

O SDK de DAI do IMA oferece dois métodos para solicitar o tempo do conteúdo de um determinado tempo de transmissão e o tempo de transmissão de um determinado tempo de conteúdo. Com esses métodos de conversão, é possível armazenar o tempo do conteúdo favorito e, em seguida, procurar o tempo de stream correspondente na nova instância do stream. Confira a abordagem, incluindo um link para um app de exemplo que mostra uma implementação de adição aos favoritos.

Salvando favoritos

Salvar um favorito quando a atividade estiver pausada.

- (void)viewWillAppear:(BOOL)animated {
  ...
  self.bookmarkTime =
      [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
          self.playerViewController.player.currentTime)];
}

Carregando favoritos

Carregue o favorito ao solicitar um stream novamente. Ele faz parte da implementação da interface VideoStreamPlayer.

- (void)streamManagerIsPlaybackReady:(IMAStreamManager *)streamManager {
...
  if (self.bookmarkTime != 0) {
    NSTimeInterval streamTime = [self.streamManager
        streamTimeForContentTime:self.bookmarkTime];
    [self.playerViewController.player
        seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
  }
}

App de exemplo

App de exemplo