Snapback

Como editor de vídeo, talvez você queira impedir que os espectadores conquistem os anúncios intermediários. Quando um usuário procura um intervalo de anúncio, é possível retornar ao início do intervalo e retorná-lo ao local de busca depois que o intervalo de anúncio terminar. Esse recurso é chamado de "ajuste".

Como exemplo, confira o diagrama abaixo. O espectador está assistindo um vídeo e decide passar da marca de 5 a 15 minutos. No entanto, há um intervalo de anúncio na marca de 10 minutos que você quer que eles assistam antes que possam assistir ao conteúdo depois:

Para mostrar esse intervalo de anúncio, siga estas etapas:

  1. Verifique se o usuário fez uma busca que ultrapassou um intervalo de anúncio não assistido e, em caso afirmativo, leve-o de volta ao intervalo de anúncio.
  2. Após a conclusão do intervalo de anúncio, retorne-os à busca original.

Em forma de diagrama, o resultado é parecido com este:

Veja como implementar o Snapack usando o SDK de DAI do IMA, conforme demonstrado no nosso exemplo avançado.

Impedir que uma busca deixe um intervalo de anúncio sem exibição

Verifique se o usuário executou uma busca que passou por um intervalo de anúncio não assistido e, em caso afirmativo, leve-o de volta ao intervalo de anúncio. O exemplo avançado do Roku depende do pressionamento remoto do botão para que o usuário busque. Cada vez que ele pressionar o botão "Avançar", ele avançará no stream por um número definido de segundos. O mesmo método que processa esse salto também verifica se ele passa ou entra em um intervalo de anúncio e, em caso afirmativo, direciona o usuário para o início desse intervalo de anúncio:

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

Colocar o usuário de volta à busca original

No gerenciador adBreakEnded, verifique se o intervalo de anúncio anterior foi reproduzido como resultado do Snapback. Em caso afirmativo, retorne o usuário ao local que ele estava tentando buscar inicialmente, desde que não fosse o meio do intervalo de anúncio que acabou de ser reproduzido:

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function