Zakładki

Z tego przewodnika dowiesz się, jak wdrożyć dodawanie zakładek za pomocą pakietu IMA DAI SDK w przypadku korzystania z dynamicznego wstawiania reklam (DAI) w strumieniach wideo na żądanie (VOD). Zakładamy tutaj, że masz działającą implementację IMA DAI, taką jak ta przedstawiona w artykule dla początkujących.

Co to jest tworzenie zakładek?

Zakładki to możliwość zapisania konkretnego miejsca w strumieniu treści, a potem powrót do niego. Załóżmy, że użytkownik ogląda pięć minut treści, opuszcza strumień wideo, a potem do niego wraca. Dodanie użytkownika do zakładek pozwala zapisać pozycję użytkownika w strumieniu, dzięki czemu może rozpocząć transmisję od miejsca, w którym została przerwana.

Tworzenie zakładek z dynamicznym wstawianiem reklam

Aby utworzyć zakładkę strumienia z dynamicznym wstawianiem reklam, musisz zarejestrować identyfikator strumienia i godzinę zamknięcia filmu przez użytkownika. Gdy użytkownik wróci, wyślij ponownie żądanie strumienia i sprawdź zaoszczędzony czas. W każdej instancji żądanego strumienia mogą występować przerwy na reklamę o różnej długości, więc oszczędność czasu transmisji nie będzie działać. Bardzo zależy Ci na tym, by kontynuować od tego samego czasu trwania.

Ratunkowe metody konwersji

Pakiet IMA DAI SDK udostępnia dwie metody żądania czasu treści dla danego czasu strumieniowego i czasu strumieniowania dla wybranego czasu trwania treści. Korzystając z tych metod konwersji, możesz przechowywać dodany do zakładek czas treści, a potem przeszukiwać odpowiedni czas strumienia w nowym wystąpieniu strumienia. Oto podejście, łącznie z podaniem linku do przykładowej aplikacji, która pokazuje działającą implementację zakładek.

Zapisuję zakładki

Zapisz zakładkę, gdy Aktywność jest wstrzymana.

Saves the current time as a bookmark in the current video.
Function saveBookmarkTime(player as Object,  streamManager as Object) as Void
  m.videos[player.video.index].bookmarkTime =
      streamManager.getContentTime(player.currentTime * 1000)
End Function

Wczytuję zakładki

Wczytaj zakładkę, gdy ponownie prosisz o strumień. Jest to element implementacji interfejsu VideoStreamPlayer.

player.loadUrl = Function(streamInfo as Object)
  ...
  If m.video.bookmarkTime > 0
    streamTime = m.streamManager.getStreamTime(m.video.bookmarkTime)
    m.videoPlayer.seek(streamTime)
  End If
End Function

Przykładowa aplikacja

Przykładowa aplikacja