Este guia mostra como implementar a criação de favoritos usando o SDK da 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 funcional da DAI do IMA, como a apresentada em Começar.
O que é adicionar aos favoritos?
A capacidade de salvar e depois voltar a um ponto específico no stream de conteúdo. Digamos que um usuário assista cinco minutos de conteúdo, saia do stream de vídeo e, em seguida, retorne a ele. Com os favoritos, a posição do usuário no stream é salva. Assim o stream pode começar de onde parou, proporcionando uma experiência agradável ao espectador.
Como funciona a criação de favoritos da DAI
Ao adicionar um fluxo da DAI aos favoritos, você precisa registrar o ID e o tempo do fluxo quando o usuário sai do vídeo. Quando o usuário voltar, solicite novamente o fluxo e procure o tempo salvo. Como cada instância do stream solicitado pode ter intervalos de anúncios de durações diferentes, salvar apenas o tempo do stream não funciona. O que você realmente quer fazer é continuar do mesmo tempo de conteúdo.
Métodos de conversão para ajudar
O SDK de DAI do IMA oferece um par de métodos para solicitar o tempo de conteúdo de um determinado tempo de stream e o tempo de stream de um determinado tempo de conteúdo. Usando esses métodos de conversão, você pode armazenar o tempo de conteúdo marcado com um marcador e, em seguida, buscar 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 favoritos em funcionamento.
Como salvar favoritos
Salvar um marcador quando a atividade for pausada.
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.contentPlayer pause];
// Ignore this if you're presenting a modal view (e.g. in-app clickthrough).
if ([self.navigationController.viewControllers indexOfObject:self] ==
NSNotFound) {
NSTimeInterval contentTime =
[self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
self.contentPlayer.currentTime)];
self.video.savedTime = contentTime;
...
}
}
Carregando favoritos
Carregue o marcador ao solicitar novamente uma transmissão. Isso faz parte da implementação da interface VideoStreamPlayer
.
- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
...
case kIMAAdEvent_STREAM_LOADED: {
if (self.video.savedTime > 0) {
NSTimeInterval streamTime =
[self.streamManager streamTimeForContentTime:self.video.savedTime];
[self.IMAVideoDisplay.playerItem
seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
self.video.savedTime = 0;
}
}
}