Переключить видео элемент в Chromecast CAF Receiver
Я хочу реализовать собственный приемник CAF, который делает следующее:
- Воспроизведение рекламного ролика перед началом ролика с использованием внешнего рекламного SDK.
- Воспроизведение прямой трансляции DASH или HLS.
Функции работают отлично самостоятельно. Когда я запускаю прямую трансляцию после рекламы, игрок выдает эту ошибку:
Uncaught DOMException: Failed to read the 'buffered' property from 'SourceBuffer': This SourceBuffer has been removed from the parent media source.
at Hh.fk (http://www.gstatic.com/cast/sdk/libs/mediaplayer/1.0.0/media_player.js:149:315)
at yc (http://www.gstatic.com/cast/sdk/libs/mediaplayer/1.0.0/media_player.js:30:291)
at SourceBuffer.vc (http://www.gstatic.com/cast/sdk/libs/mediaplayer/1.0.0/media_player.js:31:343)
at SourceBuffer.b (http://www.gstatic.com/cast/sdk/libs/mediaplayer/1.0.0/media_player.js:28:245)
Затем эта ошибка сопровождается:
[cast.player.api.Host] error: cast.player.api.ErrorCode.PLAYBACK/104
Ошибка 104 указывает, что источник не поддерживается проигрывателем, но поскольку потоки воспроизводятся без рекламы, это не может быть проблемой. Это, скорее всего, побочный эффект, вызванный ошибкой SourceBuffer выше.
Я уверен, что причина ошибки заключается в video
элемент, который Ad SDK использовал для отображения видео перед просмотром. Ad SDK добавляет элемент, воспроизводит объявление и впоследствии удаляет элемент.
Я пробовал следующее:
- Установить
video
элемент внутриcast-media-player
в качестве текущего элемента воспроизведения черезcontext.getPlayerManager().setMediaElement(...)
после окончания воспроизведения рекламы. - Создано
cast-media-player
после того как объявление закончено и добавлено в тело. Затем запросил потоковое воспроизведение. - Комбинация 2→1: создала элемент, а затем установила его элемент видео в качестве текущего медиа-элемента.
Ничто из вышеперечисленного не сработало.
Есть ли способ сбросить или повторно запустить плеер, чтобы использовать cast-media-player
элемент?
Обратите внимание, что наложение рекламы, поддерживаемое приемником CAF, выходит за рамки, поскольку внешний рекламный SDK является жестким требованием.