采用方案:
1、采用了萤石云(属于海康威视旗下的云服务)视频方案。
2、支持第三方、海康部分及萤石云摄像头接入。
3、萤石云接入登录入口:登录-用户认证中心 (ys7.com)。
绑定流程:
1、注册并登录萤石云平台。
2、在【我的账号 -> 应用信息】填写相关应用信息得到应用秘钥:AppKey、Secret、AccessToken 重要信息需妥善保管。
3、其中可通过AppKey + Secret 可获取到AccessToken,获取方式参见:获取Access Token · 萤石开放平台API文档 (ys7.com) ,其中AccessToken为7天有效期,不可频繁获取,可采用相关存储方案进行储存。
4、在【我的资源 -> 设备列表】接入设备,其中海康部分或萤石云摄像头,可点击 **萤石协议接入 **按钮,填写 设备序列号 及 设备验证码 即可接入,第三方接入则需要选择符合国际协议的设备进行接入,接入之后视频设备详情列表中会出现一条设备信息,并注意该设备是否是在线状态,如果不是在线状态则无法连接。
5、接下来即可编写前端代码进行接入。
代码实现:
1、采用了 ezuikit-js 进行视频接入,其相关文档地址:UIKit Javascript · 萤石开放平台API文档 (ys7.com)
2、视频直播及回放相关案例展示:https://open.ys7.com/console/ezuikit/template.html。
3、代码二次封装组件案例(实现直播和回放):video-ezuikit.zip
4、调用示例: <VideoEzuikit accessToken="需要获取到的AccessToken" deviceName="G53164888" controller={false} autoplay={false} audioplay={false} width={400} height={200} />
5、按正常步骤都无法获取视频信息,那么则检查视频是否处于加密状态,如果属于加密状态,那么视频则无法播放,必须解密才能进行视频播放,解密方案参见文档:提示“视频已加密”怎么办? - 萤石服务中心 - 萤石官网 - EZVIZ。
注意事项:
1、其中在使用的时候,组件卸载并不会暂停或卸载视频,反而还会占用很高的内存,所以需要在页面离开的时候把视频暂停(注意:暂停的视频不能再次暂停否则会报错,这个属于video-ezuikit的bug,需要自行进行处理)。
2、这里解决这个bug采用的方式是:在视频组件中赋值了 window._ezuikit_list 相关数组变量进行存储,记录每个video-ezuikit组件中的视频对象,并记录了该对象是否是暂停还是播放状态,那么在切换页面的时候需先进行对 window._ezuikit_list 数组进行遍历查找是否有在播放的视频,有的话则需要调用 .stop() 方法进行暂停(这里采用了setTimeout稍微进行延时处理,先把视频进行暂停),再跳转到其它页面方案进行解决(当然有更好的方案也可以告知我进行改进)。
3、接入多个视频流注意事项,参见ezuikit-js文档:
标签:视频,回放,接入,前端,暂停,ezuikit,萤石,进行 From: https://www.cnblogs.com/zion0707/p/16952312.html