安卓下微信内置浏览器视频出现解析错误

原文地址

今天给客户做一个微信端的HTML5的动画页面,页面内有一个视频文件,今天上线,这是前提。刚上线不久,客户的服务器便不堪重负,为了解决问题,我们将该页面的媒体文件放在自己的服务器上。问题来了,转移媒体文件之后,发现在安卓机上视频报出解析错误(当时测试机型为华为和三星,由于公司大部分都是iphone党,安卓机型有限)。

视频播放使用的是video标签形式,通过三方包 videojs。遂bing、google查之,发现网上关于这块内容不多,在X5论坛上也有人报出这个问题,但没有解决方案。当我们发现一个问题,在客户的服务器上没有遇到解析错误的问题,iphone上没有,chrome上没有。当然首先想到,两个服务器,一个报错一个没报错,便把问题矛头指向服务器配置上。然后问题提交给服务器端,最终发现是由于服务器开启了gzip压缩(关于gzip压缩下次详解),对视频文件进行压缩后传给浏览器。

最终在服务器端关闭gzip压缩,一切回归正常。视频正常播放。

响应头部信息

测试机型一

  1. 华为安卓7.0
  2. 微信6.5.7

通过测试安卓手机端的请求信息,安卓下微信内置浏览器的请求头部中 Accept-Encoding 字段参数信息为 gzip,deflate 与手机内自带浏览器相同,说明在请求时浏览器想服务器表明自己支持的压缩方式为此两种,不同的是微信内置浏览器不支持gzip压缩的视频文件, 而安卓自带浏览器只是gzip压缩后的视频

测试机型二

  1. 三星
  2. 微信6.5.7

通过测试安卓手机端的请求信息,安卓下微信内置浏览器的请求头部中 Accept-Encoding 字段参数信息为 gzip,deflate , 手机内自带浏览器多一种sdch的压缩方式,此两种浏览器对于gzip压缩的视频文件都不能正常解析播放

华为内置浏览器

userAgent: Mozilla/5.0 (Linux; Android 7.0; VKY-AL00 Build/HUAWEIVKY-AL00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Accept-Encoding: gzip, deflate

华为下微信内置浏览器

userAgent: Mozilla/5.0 (Linux; Android 7.0; VKY-AL00 Build/HUAWEIVKY-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043220 Safari/537.36 MicroMessenger/6.5.7.1041 NetType/WIFI Language/zh_CN
Accept-Encoding: gzip, deflate

三星内置浏览器的请求信息

userAgent: Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G9280 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
Accept-Encoding: gzip, deflate, sdch

三星微信内置浏览器的请求信息

userAgent: Mozilla/5.0 (Linux; Android 6.0.1; SM-G9280 Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043220 Safari/537.36 MicroMessenger/6.5.7.1041 NetType/WIFI Language/zh_CN
Accept-Encoding: gzip, deflate

暂时还未有更好的解决方案,为了适应各手机,所以对于需要在移动端页面播放的视频文件还是不要在服务器端进行压缩。当然如果你的用户群体都是iphone党,也是可以的嘛,哈哈哈哈哈

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础知识篇:Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中...
    iPhone阅读 15,912评论 0 13
  • 引言:对于HTTP属性的一些整理,数据请求和响应就不再贴图,随意找个网站打开调试工具都可以看得到。注:HTTP版本...
    可爱的木头阅读 3,079评论 0 1
  • 在互联网上抓取数据的时候,经常需要程序伪装成浏览器来避开服务端的一些限制,这是收集的一些浏览器的User-Agen...
    venter_zhu阅读 7,522评论 0 14
  • 女人更愿意相信两个人的爱可以永恒地延续下去,并沉迷于这种错觉之中。男人却本能地不相信爱会永恒。 在喜欢的异性面前,...
    妙手柯楠阅读 1,646评论 0 3
  • 近段时间来,一直坚持着日更和晨跑,也基本养成了习惯。 我在想,我虽然坚持着每天写一篇文章,就像刷牙洗脸一样,定点,...
    小贤哥2017阅读 1,495评论 14 12