Como editor de vídeo, talvez você queira impedir que os espectadores avancem os anúncios intermediários. Quando um usuário pula um intervalo comercial, você pode levá-lo de volta ao início desse intervalo e, em seguida, retornar ao ponto do vídeo buscado pelo usuário após a conclusão do intervalo. Esse recurso é chamado de "snapback".
Por exemplo, confira o diagrama abaixo. O espectador está assistindo um vídeo e decide buscar do minuto 5 ao minuto 15. No entanto, há um intervalo de anúncio aos 10 minutos que você quer que eles assistam antes de poderem assistir o conteúdo depois disso:
Para mostrar esse intervalo, siga estas etapas:
- Verifique se o usuário fez uma busca que pulou um intervalo de anúncio não assistido e, em caso afirmativo, retorne ao intervalo de anúncio.
- Depois que o intervalo comercial terminar, retorne ao ponto original.
Em um diagrama, isso fica assim:
Confira como implementar o snapack usando o SDK DAI do IMA, conforme demonstrado no nosso exemplo avançado.
Evitar que uma busca deixe um intervalo de anúncio sem ser assistido
Verifique se o usuário fez uma busca que passou por um intervalo de anúncio não assistido e, em caso afirmativo, retorne ao intervalo de anúncio. A amostra avançada do Roku depende de pressionamentos de botões remotos para que o usuário possa buscar. Cada vez que o usuário pressiona o botão para frente, ele avança no stream por um número definido de segundos. O mesmo método que processa esse salto também verifica se ele leva o usuário para depois ou para dentro de um intervalo de anúncio. Se isso acontecer, o usuário será enviado para o início desse intervalo:
Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
previousAd = streamManager.getPreviousCuePoint(updatedTime)
If previousAd = Invalid or previousAd.hasPlayed
player.seek(updatedTime * 1000)
Else If previousAd.start > player.currentTime
player.isSnapback = True
player.timeAfterSnapback = updatedTime
player.seek(previousAd.start * 1000 + 1000)
End If
End Function
Voltar o usuário para a posição original
No seu gerenciador de adBreakEnded
, verifique se a quebra de anúncio anterior
foi reproduzida como resultado do snapback. Se for o caso, retorne o
usuário ao local que ele estava tentando acessar inicialmente (desde que
não seja o meio do intervalo do anúncio que acabou de ser veiculado):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function