Я хочу реализовать пользовательский CAF-приемник, который выполняет следующие действия:
- Воспроизведение видео перед прокруткой с использованием внешнего рекламного SDK.
- Воспроизведение DASH или HLS в реальном времениstream.
Функции работают самостоятельно.Когда я запускаю прямую трансляцию после объявления, игрок выдает эту ошибку:
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 для внешней рекламы - жесткое требование.