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 Pierwsze kroki.

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 Activity jest wstrzymany.

private double bookmarkTime;
@Override
public void onPause() {
   super.onPause();
   double streamTime = videoPlayer.getCurrentPosition() / 1000.0; // ms to s.
   bookmarkTime = streamManager.getContentTimeForStreamTime(streamTime);
}

Wczytuję zakładki

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

public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
    // Set video player's stream URL and subtitles, and play the stream.
    ...

    // Bookmarking.
    if (bookmarkTime > 0) {
        double streamTime =
                streamManager.getStreamTimeForContentTime(bookmarkTime);
        videoPlayer.seek((long) (streamTime * 1000.0)); // s to ms.
    }
}

Przykładowa aplikacja

Pobierz przykładową aplikację, aby zobaczyć implementację zakładek.