Este guia mostra como implementar a inclusã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 ativa, como a apresentada no Primeiros passos.
O que são favoritos?
Adicionar aos favoritos é a capacidade de salvar e depois voltar a um ponto específico no fluxo de conteúdo. Suponha que um usuário assista a cinco minutos de conteúdo, sai do stream de vídeo e depois retorna a ele. Os favoritos salvam posição do usuário na transmissão para que ela possa continuar de onde parado, proporcionando uma experiência perfeita ao espectador.
Como adicionar favoritos em segundo plano da DAI
Ao adicionar um stream da DAI aos favoritos, registre o código e o horário dele quando o usuário sair do vídeo. Quando o usuário retornar, solicite novamente o stream e procurar o tempo economizado. Como cada instância do evento a transmissão pode ter intervalos de anúncios de diferentes durações. Basta salvar a transmissão. não vai funcionar. O que você realmente deve fazer é continuar com a mesma tempo de conteúdo.
Métodos de conversão ao resgate
O SDK de DAI do IMA oferece dois métodos para solicitar o tempo do conteúdo. para um determinado tempo de transmissão e o tempo da transmissão para um determinado conteúdo tempo de resposta. Com esses métodos de conversão, é possível armazenar os favoritos tempo de conteúdo e depois o tempo da transmissão correspondente em a nova instância do fluxo. Aqui está a abordagem, incluindo um link a um app de exemplo que mostra uma implementação de adição de favoritos em funcionamento.
Salvando favoritos
Salvar um favorito 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 favorito ao solicitar um stream novamente. Faz parte da implementação
a 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;
}
}
}