在 video_player.js 中,定义一个视频播放器封装类,以初始化和控制 dash.js 播放器。
设置宽带播放器
通过创建视频和封装容器标记,定义在应用中放置宽带播放器的位置:
创建视频播放器
使用 HTML 元素、dash.js 播放器和回调的变量初始化视频播放器类,其他类方法可以使用这些变量。
定义播放控制函数
如需显示广告播放器并附加视频视图,请创建 VideoPlayer.play() 方法。之后,创建 VideoPlayer.stop() 方法,以在广告连播结束后处理清理工作。
预加载广告流清单
如需验证在内容流期间和广告插播时间点开始之前广告是否已充分加载,请使用 VideoPlayer.preload() 和 VideoPlayer.isPreloaded()。
1. 预加载广告流
创建 VideoPlayer.preload() 方法,以预加载广告流清单并在广告插播时间点之前构建广告缓冲区。您必须将播放器流式传输
设置 'cacheInitSegments' 更新为 true。通过更新设置,您可以缓存 init 段,从而避免在切换到广告时出现延迟。
2. 检查预加载的广告缓冲区
创建 VideoPlayer.isPreloaded() 方法,以检查与应用中设置的缓冲区阈值相比,预加载的广告缓冲区是否足够:
附加播放器监听器
如需为 dash.js 播放器事件添加事件监听器,请创建 VideoPlayer.attachPlayerListener() 方法:PLAYBACK_PLAYING、PLAYBACK_ENDED、LOG 和 ERROR。除了设置用于移除这些监听器的清理函数之外,此方法还会处理方案 ID URI 的事件。
设置播放器事件回调
如需根据播放器事件管理广告连播播放,请创建 VideoPlayer.onAdPodPlaying()、VideoPlayer.onAdPodEnded() 和 VideoPlayer.onAdPodError() 方法:
为 onAdPodEnded 事件创建 setter
通过创建 VideoPlayer.setOnAdPodEnded() 方法,设置在广告连播结束时运行的回调函数。应用类使用此方法在广告插播后恢复内容广播。
处理流元数据事件
通过创建 VideoPlayer.setEmsgEventHandler() 方法,设置根据 emsg 事件运行的回调函数。对于本指南,请添加 scope 参数,因为您在 video_player.js 之外调用 setEmsgEventHandler()。
显示和隐藏广告插播的视频播放器
如需在广告插播期间显示视频播放器,并在广告插播结束后隐藏播放器,请创建 VideoPlayer.show() 和 VideoPlayer.hide() 方法:
接下来,创建一个广告管理器类,以使用 IMA SDK 发出流请求、获取广告连播清单、监听 IMA 流事件,并将 emsg 事件传递给 IMA SDK。