[转] Android 4.4中播放HTML5视频<video>的Bug
近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下:
<video width="480" height="280" poster="test.jpg" src="test.mp4" preload="auto"></video>
在4.3版本之前播放正常,新版本中播放时只能听到声音,而画面停留在最初的画面,也就是poster属性中的图片,但不会显示视频动画,只有点击暂停按钮,然后再次点击播放按钮时,视频动画才会显示正常。
网上查阅了很多国外论坛,发现两个类似的反馈,但解决方法不同,其中的一个办法是使用CSS3的-webkit-transform: translate3d(0, 0, 0)属性强制打开3D渲染,可以使视频播放正常,但这种方法会导致初始的poster图片只显示一下,然后一闪而过停留在视频播放界面,点击播放时,视频播放倒是一切正常。
另外在官方论坛找到一个类似的反馈报告: https://code.google.com/p/android/issues/detail?id=62145#makechanges
其中提到此问题可能是由于preload属性引起,只有设定preload="none"才可以显示视频,官方已经确认了这个bug,并表示已经解决,下个版本会更新。但经我测试,单独设置preload="none"并不会完全解决此问题,视频仍旧只有声音,画面停留在初始界面。
经我多次试验,将上述两种方法结合起来,最终解决了这个问题,代码如下:
<video width="480" height="280" poster="test.jpg" src="test.mp4" preload="none" ></video>
默认的poster显示正常,点击播放,视频声音画面显示也都正常。
这个Bug产生的原因我认为是在视频开始播放时没有启动3D加速,导致原始的poster图片未被刷新到视频画面。设置preload="none"禁止了视频的自动载入,确保了poster画面被正确载入;同时在点击播放视频时,-webkit-transform: translate3d(0, 0, 0)确保打开了3D加速,自动刷新了poster的原始画面。
当然以上原因都为猜测,解决办法也是临时的,因为这不符合HTML5标签的原始定义,未来还要看官方的下一个Android版本是否解决掉这个Bug。
[转] Android 4.4中播放HTML5视频<video>的Bug的更多相关文章
- 【转】Android 4.4中播放HTML5视频<video>的Bug
近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下: <video width= ...
- 在游戏中播放cg视频遇到的问题
遇到问题 我们线上手游要给港澳台用户增加cg视频,在我之前文章中已经讲到了我们是怎么在unity中播放cg的--><使用AVPro Video在Unity中播放开场视频(CG)笔记> ...
- 在原生开发中控制HTML5视频!
在原生开发中控制HTML5视频! PC端 视频如何自动播放! 在video标签中添加 autoplay + muted(静音属性!) 温馨提醒: video是一个块级元素! 但是唯一的缺陷就是视频没有 ...
- WebView&HTML5-----使用WebView播放HTML5视频文件
一.问题描述 HTML5提供了很多新的特性比如,视频播放.web本地存储.地理定位.应用缓存.Canvas等,但这些特性需要浏览器的支持,在Android应用中我们可以使用WebView构建Web应用 ...
- Android ——VideoView禁止"无法播放该视频"弹窗
我们在使用videoView播放视频时,如果获取内容失败.网址不对.或者视频格式不对等,会弹出“无法播放该视频”的弹窗,阻塞用户使用. 这种情况,如果在一些自助服务类场合下,弹窗会造成十分不友好的用户 ...
- HTML5视频Video 音频Audio
视频协议 视频格式 Flash HTML5 HTTP flv HTTP f4v HTTP mp4 HTTP m3u8 HTTP webm HTTP ogg RTMP flv RTMP f4v RTMP ...
- html5视频video积累
又是好几个月没有写东西,还是太懒散了~必须要教育下自己罗~ 这次做了个播放视频的移动H5,之前没有仔细玩过,好好记录下基本知识,还有遇到的一些坑,方便之后再次遇见后进行解决 一.基本 video标签在 ...
- android播放html5视频,仅仅有声音没有图像视频
在AndroidManifest.xm中l增加 <activity .... android:hardwareAccelerated="true" />
- 使用AVPro Video在Unity中播放开场视频(CG)笔记
游戏中的开场CG(播放视频),采用的插件为AVPro Video1.x(和W的版本一致),Unity版本为2018.4.0f1 Asset Store:AVPro Video - Core Andro ...
随机推荐
- variably modified 'dist' at file scope|
转自:http://blog.csdn.net/wusuopubupt/article/details/18408227 错误原因: The reason for this warning is th ...
- [ json editor] 如何在网页中使用Json editor 插件
[目的] 在自己的网页上交由用户进行json的可视化编辑 [难点]1.json中含有递归嵌套的数组和对象 2.json中的基本值类型有数字.字符串和布尔型 [方法]使用daviddurman的Flex ...
- 如何用Visual Studio 2013 (vs2013)编写C语言程序 (转)
http://blog.sina.com.cn/s/blog_964ee6730101jvvi.html
- 字符集和字符编码(Charset & Encoding)
字符集和字符编码(Charset & Encoding)[转] 1.基础知识 计算机中储存的信息都是用二进制数表示的:而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按 ...
- 洛谷P3370 【模板】字符串哈希
P3370 [模板]字符串哈希 143通过 483提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 看不出来,这题哪里是哈希了- 题目描述 如题,给定N个字符串(第i个 ...
- C语言PIC16 serial bootloader和C#语言bootloader PC端串口通信程序
了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC16 Boot ...
- RabbitMQ学习: 介绍
1. 介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue )协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非 ...
- linux下wps,系统缺失字体:wingdings、wingdings 2、wingdings3
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAArcAAACdCAIAAAAhV8dZAAAgAElEQVR4nOzdd1wT9/8H8OvXfjvtt8
- LinQ的查询操作
LinQ的高级查询:-------------------在car表格进行练习操作: 一.模糊查询:1.在后台代码:(Contains)List<car>list=con.car.wher ...
- java多线程的几种实现方式记录
传统的实现线程的方式为三种,分别为继承Thread类,重写run()方法:实现Runable接口,重写run()方法:实现callable接口,重写call()方法:下面来记录一下最基本的三种编码实现 ...