EPG开发《异常排查以及解决方案》
Posted menu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EPG开发《异常排查以及解决方案》相关的知识,希望对你有一定的参考价值。
【框架】??STB TV端全栈解决方案。Android、Linux、电信、移动、广电平台 https://shitaozhang.github.io/
【文档】EPG 的全业务解决方案,拥有最新的 ES6\ES7 API、Preact、Mobx 而无需考虑其兼容性。同时包含所有常规功能、业务最佳实践示例
盒子与浏览器差异
- 盒子关机后 cookie 清空
- IPTV规范针对 javascript 扩展 API 不要通过闭包或 require 加载,出现接口无法访问问题
- 安徽-海信-ZP906H 盒子全局 top 属性作为 js 关键字。再次声明或赋值操作为无效。尽可能不要使用该关键字 top
- 数码视讯 Q5 小窗视频会覆盖所有元素背景图片样式;添加 背景图片可能导致屏幕部分黑屏(图片相关使用 img 标签)
- 创维 E900 返回简码与其它盒子不一致 Key.Backspace2且隐藏视频接口 this.mediaPlay.setVideoDisplayMode(255)无效
- APK 暴露的方法不要使用 let var 去定义 否则导致为空
- line-height 居中文字盒子展示有差异,使用 padding + font-size 代替 line-height 高度
- 部分盒子加载超长图片会失真模糊,浏览器自动降低图片分辨率进行下载,解决方案拆分成多个
- 绝大部分盒子默认背景色为黑色
- 烽火盒子背景图片切换会闪动;使用 visibility 代替 display:none 方式来显示图片;Velocity.js 插件导致的兼容性问题
- 播放影片部分可以播放 驻地网络 DHCP与 PPOE 可能导致网络不一样
- 烽火盒子 window.onkeydown 有时会失效推荐使用 document.onkeydown 还无法解决在页面加载主动 window.focus() 该盒子对于已经访问过页面貌似会抽风,需要主动激活
- 使用 Player 组建;创维中兴 调用频道播放直播流 A B 页面频繁切换时需注意 创建与播放 MediaPlayer 实例的间隔。可导致 无法播放问题。解决方案。在 A B 页面不要释放播放器。可重复创建 MediaPlayer 实例
- 创维E8205 在 A 页面创建播放器没有释放情况到 B 页面进行播放 这时 Backspace 被系统阻止.释放播放器后可恢复该异常
- ES5 特性不要使用 default 导出 低版本内核实现 default 会报错,比如IE 8及以下也可使用下面一条处理方式
- 生成 ES5 代码时由于盒子环境不支持部分 ES5 标签因此需要我们转换为 ES3 webpack 配置 es3ify-loader 加载器可解决这个问题
- 不可使用 a 标签,除非你完全清楚他在不同盒子的表现。通常 a 标签是默认的且可受 按键操控(移动、确认) 大部分情况下这个并不是我们需要的
- 盒子调试可配置 ie8 环境。该环境都能正常运行基本可保证盒子可运行。目前 4k 盒子比 ie8 兼容还要好一些比如 ie8 中报错的 Object.defineProperty 在盒子基本能正常运行
- 烽火盒子对 BUG 绝对敏感,遇到烽火盒子不能运行其他盒子可以运行情况,最佳方式抓 ADB 日志。绝大部分可能性是程序运行时调用到空对象(大部分盒子会忽略这种错误))
- 本地可以访问,盒子API报错,通常IP段分内网外网,盒子是内网 PPEOP 拨号基本是内网,查看配置文件 是否处理动态匹配API域名
- 盒子播放直播串切小屏切换全屏或者全屏切换小屏会导致视屏源丢失;需要重新调用播放;播放频道号不存在这个问题
- 播放器通常放在页面加载处实例化,以保证全局仅实例化一次。
- 播放频道需要使用 Number 进行类型转换,不然有可能存在潜在问题
- 多个页面操作播放频道时,最好先调用离开频道方法,再掉进入频道,否则部分盒子导致频道播放黑屏
- 安徽天翼盒子不支持调频道号进行播放(或者该账号不支持当前所播放频道。可以在频道太直接进入频道进行判断,该频道在当前环境是否正常)
- 烽火 HG680-J 调用 joinChannel 传入空频道号,会导致盒子重启。解决方案进行判断再调用
- 创维 E910
play.setMute();
play.stop();
play.displaySmall(left:-500,top:-500,width:100,height:100);
其中一步骤会导致视频死掉,页面死掉,焦点无法移动。解决方案 play.release(); 直接释放来代替隐藏视频效果
- 带有 bottom 属性元素消失,考虑盒子对于该属性解析失效,推荐采用 top 设置样式
- 刚创建的播放器不需要调用 leaveChannel 部分盒子可导致异常
- 播放频道号数据源为空导致异常重启(直接进入频道看是否正常播放)
- 华为盒子对于渲染引擎与JS解释器切换不够直接。直接追加元素在通过父元素获取可能为空,可在获取代码做延迟处理
- 部分盒子出现闪退问题,如果是在同一步动作复现,很大可能是该部分代码出现类型错误
- 部分盒子出现闪退问题,焦点切换一段时间,系统自动退出。去掉 transition 等一系列 CSS3 属性便可恢复
- 部分盒子出现闪退问题,(特别是移动盒子)GIF图片导致性能瓶颈盒子闪退,去掉动图便可解决
- 移动部分盒子自动缓存API接口,加入时间戳可解决
- 移动部分盒子 Cookie 存储时 path=/ 导致存储失败,采用默认路径,即不设置 path 属性可正常存取
- 部分盒子EPG中有嵌套iframe导致页面比例异常放大,需要在 iframe 嵌套页面设置显示比例viewport 和 page-view-size
- 部分盒子加载缓慢,切换数据卡顿。考虑是否内存过小,此基础上进行优化
- 播放器无法监听播放结束事件解决方案
以上是关于EPG开发《异常排查以及解决方案》的主要内容,如果未能解决你的问题,请参考以下文章