0

我想实现一个自定义 CAF 接收器,它执行以下操作:

  1. 使用外部广告 SDK 播放前贴片广告视频。
  2. 播放 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 用于显示前贴片视频的元素。广告 SDK 添加元素、播放广告,然后删除元素。

我尝试了以下方法:

  1. 广告播放结束后通过设置video里面的元素cast-media-player为当前播放元素。context.getPlayerManager().setMediaElement(...)
  2. 在广告完成后创建并将cast-media-player其添加到正文中。然后请求流播放。
  3. 2→1的组合:创建元素,然后将其视频元素设置为当前媒体元素。

以上都没有奏效。

有没有办法重置或重新启动播放器以使用该cast-media-player元素?

请注意,CAF 接收器支持的广告拼接超出了范围,因为外部广告 SDK 是硬性要求。

4

0 回答 0