IPTV 行业机顶盒EPG关键点

目前的EPG分为两种:

1.在盒子原生环境,即浏览器

2.在android环境,使用app承载能力,

        使用原生app实现

        使用webView为载体,加载网页

性能及适配区别,对于相同配置的盒子

性能及效果:android app原生>android app webView>=原生浏览器

适配兼容难度:原生浏览器>android app webView>android app原生

适配细节点:

        原生浏览器:大环境下使用es5及其之前的版本,较老的盒子存在个别方法不存在,较新的盒子对于es5支持性比较好

        android app webView:盒子的webView原生浏览器是谷歌内核的较早版本,但支持性较好,一般的新特性可以支持

        android app原生:android系统版本大多停留在4.4版本,也有个别地区探索9.0版本,于一般的android开发区别不大

关键点:

功能 原生浏览器 android原生 android webView 备注
 launcher和EPG交互 地址栏中携带参数 intent中携带信息 通过原生的intent传递给webView 返回信息时必需的
盒子信息获取 根据EPG规范获取,由Authentication关键字获取 没有明确规范各地区自定义 依赖原生app        
播放器 根据EPG规范的MediaPlayer 自定义开发 依赖原生app,在层级在webView下 建议在webView模式时,对接h5的接口于EPG规范相同
跳转到外部地址 在地址中携带信息 app之间的跳转 依赖原生app 包括订购;一般都有对应文档

播放器:

根据EPG规范的MediaPlayer的适配小技巧

开始播放失败:尝试执行playFromStart和playByTime方法二选一或在playFromStart之前先stop

断点播放失败:只执行playByTime或在playFromStart之后加200ms延迟再执行playByTime

无法触发开始播放:启动一个setInterval,每秒获取当前进度,如果>0表示开始播放,和原生的开始回调共同使用

无法触发结束播放:启动一个setInterval,每秒获取当前进度,如果=总时长表示播放结束,和原生的结束回调共同使用

获取当前进度失败:启动一个setInterval,在非暂停状态每秒+1,这里会有进度误差,但是可以忽略

你可能感兴趣的:(IPTV,javascript)