В video_player.js определите класс-обертку для видеоплеера, который будет инициализировать и управлять плеером dash.js.
Настройте широкополосный плеер
Определите место размещения широкополосного проигрывателя в вашем приложении, создав теги `video` и `wrapper`:
Создайте видеоплеер
Инициализируйте класс видеоплеера переменными для HTML-элементов, плеера dash.js и функциями обратного вызова, которые могут использовать другие методы класса.
Определите функции управления воспроизведением.
Чтобы отобразить рекламный плеер и подключить видео, создайте метод VideoPlayer.play() . Затем создайте метод Create VideoPlayer.stop() для обработки очистки после завершения показа рекламных блоков.
Предварительно загрузите манифест рекламного потока.
Чтобы убедиться, что реклама загружена в достаточном количестве во время потоковой передачи контента и до начала рекламной паузы, используйте VideoPlayer.preload() и VideoPlayer.isPreloaded() .
1. Предварительно загрузите рекламный поток.
Создайте метод VideoPlayer.preload() для предварительной загрузки манифеста рекламного потока и создания буфера рекламы перед рекламной паузой. Необходимо изменить параметр потоковой передачи плеера 'cacheInitSegments' на true . Изменение этого параметра включает кэширование начальных сегментов, что позволяет избежать задержек при переключении на рекламу.
2. Проверьте предварительно загруженный рекламный буфер.
Создайте метод VideoPlayer.isPreloaded() для проверки того, достаточно ли предварительно загружено рекламных блоков по сравнению с пороговым значением, установленным в приложении:
Прикрепить слушатели проигрывателя
Чтобы добавить обработчики событий для события проигрывателя dash.js, создайте метод VideoPlayer.attachPlayerListener() со следующими параметрами: PLAYBACK_PLAYING , PLAYBACK_ENDED , LOG и ERROR . Этот метод также обрабатывает события для URI с идентификатором схемы, а также устанавливает функцию очистки для удаления этих обработчиков.
Установить обратные вызовы событий игрока
Для управления воспроизведением рекламных блоков на основе событий проигрывателя создайте методы VideoPlayer.onAdPodPlaying() , VideoPlayer.onAdPodEnded() и VideoPlayer.onAdPodError() :
Создайте сеттер для события onAdPodEnded
Создайте метод VideoPlayer.setOnAdPodEnded() , чтобы задать функцию обратного вызова, которая будет выполняться после завершения рекламного блока. Класс приложения использует этот метод для возобновления трансляции контента после рекламной паузы.
Обработка событий метаданных потока
Создайте функцию обратного вызова, которая будет запускаться на основе событий emsg, используя метод VideoPlayer.setEmsgEventHandler() . В этом руководстве укажите параметр scope , поскольку вызов setEmsgEventHandler() осуществляется вне файла video_player.js .
Показывать и скрывать видеоплеер во время рекламных пауз
Чтобы отображать видеоплеер во время рекламных пауз и скрывать его после окончания рекламной паузы, создайте методы VideoPlayer.show() и VideoPlayer.hide() :
Далее создайте класс менеджера рекламы, который будет использовать SDK IMA для отправки запроса потока, получения манифеста рекламного блока, прослушивания событий потока IMA и передачи событий emg в SDK IMA.