在 video_player.js
中,定义一个视频播放器封装容器类,以启动和控制 dash.js 播放器。
设置宽带播放器
通过创建视频和封装容器代码,定义宽带播放器在应用中的放置位置:
创建视频播放器
使用 HTML 元素、dash.js 播放器和可供其他类方法使用的回调的变量初始化视频播放器类。
定义播放控制函数
如需显示广告播放器并附加视频视图,请创建 VideoPlayer.play()
方法。然后,创建 VideoPlayer.stop()
方法以处理广告 Pod 完成后的清理工作。
预加载广告流清单
如需验证广告是否在内容流期间和广告插播时间点开始之前充分加载,请使用 VideoPlayer.preload()
和 VideoPlayer.isPreloaded()
。
1. 预加载广告流
创建 VideoPlayer.preload()
方法,以预加载广告流清单并在广告插播之前构建广告缓冲区。您必须将播放器流式传输设置 'cacheInitSegments'
更新为 true
。更新设置后,系统会缓存初始段,从而避免在切换到广告时出现延迟。
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。