Snapback

Jako wydawca filmów możesz chcieć zapobiec wyświetlaniu reklam w trakcie filmu. Gdy użytkownik przechodzi do wyników wyszukiwania poza przerwą na reklamę, możesz cofnąć się do początku przerwy na reklamę i wrócić do miejsca, w którym znajdował się wyszukiwane hasło po zakończeniu przerwy na reklamę. Funkcja ta nosi nazwę „snapback”.

Przykład znajduje się na diagramie poniżej. Widz ogląda film i postanawia przewinąć od znacznika 5 minut do 15 minut. Po 10 minutach filmu pojawia się przerwa na reklamę, którą użytkownik chce obejrzeć, zanim będzie mógł obejrzeć kolejną:

Aby wyświetlać tę przerwę na reklamę, wykonaj te czynności:

  1. Sprawdź, czy użytkownik uruchomił wyszukiwanie, które przekroczyło nieobejrzaną przerwę na reklamę, a jeśli tak, wróć do przerwy na reklamę.
  2. Po zakończeniu przerwy na reklamę wróć do pierwotnego wyszukiwania.

W formie diagramu wygląda to tak:

Oto jak zaimplementować snapack za pomocą pakietu IMA DAI SDK, jak pokazano w przykładzie zaawansowanym.

Zapobieganie wyświetlaniu przerwy na reklamę przez wyszukiwanie

Sprawdź, czy użytkownik uruchomił wyszukiwanie, które przekroczyło nieobejrzaną przerwę na reklamę, a jeśli tak, przywróć mu przerwę na reklamę. Zaawansowany przykład Roku korzysta z funkcji przewijania za pomocą zdalnego naciśnięcia przycisku – za każdym razem, gdy użytkownik naciśnie przycisk do przodu, przeskoczy w strumieniu do przodu o ustaloną liczbę sekund. Ta sama metoda, która obsługuje ten skok, sprawdza też, czy przejście przechodzi w przerwę na reklamę lub czy nie. Jeśli tak, odsyła użytkownika na początek przerwy na reklamę:

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

Przywróć użytkownika do pierwotnego wyszukiwania.

W module obsługi adBreakEnded sprawdź, czy poprzednia przerwa na reklamę została odtworzona w wyniku cofnięcia. Jeśli tak, przywróć użytkownika do miejsca, w którym szukał reklamy (o ile nie był to środek przerwy na reklamę, która właśnie została wyświetlona):

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