Сохранение и загрузка закладок рекламного потока

Выберите платформу: HTML5 Android iOS tvOS Roku

В этом руководстве показано, как реализовать функцию добавления закладок с помощью SDK IMA DAI при использовании динамической вставки рекламы (DAI) для видеопотоков по запросу (VOD). Предполагается наличие работающей реализации IMA DAI, например, той, что представлена ​​в разделе «Начало работы» .

Что такое закладки?

Закладки — это возможность сохранить и затем вернуться к определенному моменту в потоке контента. Допустим, пользователь смотрит пять минут контента, выходит из видеопотока, а затем возвращается к нему. Закладки сохраняют позицию пользователя в потоке, чтобы поток мог продолжить просмотр с того места, где он остановился, обеспечивая зрителю бесперебойное взаимодействие.

Функция закладок DAI работает «под капотом».

При добавлении потока DAI в закладки необходимо записать идентификатор потока и время, когда пользователь покидает видео. Когда пользователь возвращается, повторно запросите поток и перейдите к сохраненному времени. Поскольку каждый экземпляр запрошенного потока может содержать рекламные паузы разной продолжительности, простое сохранение времени потока не сработает. Вам нужно продолжить просмотр с того же временного интервала .

На помощь приходят методы переоборудования.

SDK IMA DAI предоставляет пару методов для запроса времени содержимого для заданного времени потока и времени потока для заданного времени содержимого . Используя эти методы преобразования, вы можете сохранить закладку времени содержимого , а затем перейти к соответствующему времени потока в новом экземпляре потока. Вот подход, включая ссылку на пример приложения, демонстрирующий работающую реализацию закладок.

Сохранение закладок

Сохранять закладку, когда Activity приостановлена.

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

Загрузка закладок

Закладка загружается при повторном запросе потока. Это часть реализации интерфейса 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.
    }
}

Пример приложения

Загрузите демонстрационное приложение , чтобы увидеть, как реализована функция закладок.