android webview 播放 video经验总结
在目前PC浏览器上,对video的支持基本都没什么问题了。但是如果用webview去跑这样的页面就会遇到许多问题。
下面一段html
<!DOCTYPE html>
<html>
<head>
</head>
<body onload="test()">
<video id="video01" autoplay="autoplay">
<source src="mov_bbb.mp4" type="video/mp4" />
<p>no support text</p>
</video>
</body>
<script> function test() {
var video01 = document.getElementById("video01");
video01.preload = "auto";
video01.autoplay = true;
video01.loop = true;
}
</script>
</html>
用js控制视频的自动播放,循环播放等特性,在PC上都没啥问题。但是如果用webview去装载的话,自动播放和循环播放可能用不了。
在android的webview上autoplay自动播放这个特性支持跟设备有关系,和android的版本号没关系(这个试过的)。并且大多数设备都是不能自动播放的。并且loop这个特性也基本上是不支持的。
如果在页面上自己添加一个按钮,通过点击按钮来调用video.play()方法,能不能播放呢。
<div>
<button id="playBtn01">play</button>
</div>
js代码
var playBtn01 = document.getElementById("playBtn01");
playBtn01.addEventListener("click", function() {
video01.play();
});
这样是可以正常播放的。
于是便会想到能不能在某个特定的时候(例如某个事件发生,或者定时器时间到)调用video.play()方法让其自动播放呢?
修改一下代码
function test() { var video01 = document.getElementById("video01");
var timer = null;
var playing = false; video01.addEventListener("playing", function() {
playing = true;
}); timer = setInterval(playInterval, 1000); function playInterval() {
if (playing === false) {
video01.play();
} else {
if (timer !== null) {
clearInterval(timer);
}
}
}
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//......
view.loadUrl("javascript:onPageFinished();");
}
在js端
function onPageFinished() {
console.log("page -- onPageFinished");
//在这里调用video.play播放便可以了
var video01 = document.getElementById("video01");
video01.play();
}
这样便可以自动播放了。
android webview 播放 video经验总结的更多相关文章
- [转]Android WebView播放视频(包括全屏播放),androidwebview
Android WebView播放视频(包括全屏播放),androidwebview 最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里 ...
- Android WebView播放视频flash(判断是否安装flash插件)
Android WebView播放flash(判断是否安装flash插件) 最近帮一个同学做一个项目,断断续续的一些知识点记录一下.一个页面中有一个WebView,用来播放swf,如果系统中未安装f ...
- 【转】Android WebView 播放视频总结
今天发现 WebView里播放优酷的视频点击播放按钮后没反应,于是看官方文档和搜索解决,下面是我在别人基础上做的补充: android webView 无法播放视频,无法暂停,继续播放视频问题,无 ...
- Android 中WebView中video视频自动播放
转载于https://juejin.im/post/5d5ac7eb51882562744fae37 如果有使用过Android的WebView 播放视频的伙伴们一定会发现, 在点开视频网页的时候并没 ...
- video/audio在ios/android上播放兼容
1.audio自动播放 <audio src='xxx.mp3' autoplay></audio> 上面是audio标签autoplay属性是自动播放,但是在安卓部分浏览器和 ...
- 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)
前言 新版本的VPlayer由设计转入开发阶段,预计开发周期为一个月,这也意味着新版本的Vitamio将随之发布,开发者们可以和本系列文章一样,先开发其他功能.本章内容为"在线视频播放列表& ...
- Android WebView 详解
相关API 相关类介绍 WebResourceRequest 添加于API21,封装了一个Web资源的请求信息,包含:请求地址,请求方法,请求头,是否主框架,是否用户点击,是否重定向 WebResou ...
- WebView&HTML5-----使用WebView播放HTML5视频文件
一.问题描述 HTML5提供了很多新的特性比如,视频播放.web本地存储.地理定位.应用缓存.Canvas等,但这些特性需要浏览器的支持,在Android应用中我们可以使用WebView构建Web应用 ...
- Atitit.android webview h5运行环境总结
Atitit.android webview h5运行环境总结 1. WebView 的使用1 2. Js调用java1 3. Js调用java 跟个swt的比较2 3.1. Swt是BrowserF ...
随机推荐
- js Object.keys 用法
Object.keys() 可以将对象里的所以的键取出来放到一个数组中 1.传入对象, 返回 包含对象可枚举属性和方法的数组 var obj = {'a': 'Beijing', 'b': 'Ha ...
- Vue + iview框架,搭建项目遇到的相关问题记录 - 国际化router.js不能实现
例子展示: 概述: 最近在使用vue + iview框架进行web开发,并且有一个需求,需要实现web端的国际化,在完成相关配置文件后,发现router.js 中无法配置,并且会出现异常,在经过百度找 ...
- 后缀自动机 && 题目
因为明天要讲解后缀自动机了,所以只能抱抱佛脚,临时做做题目.其实很久以前看过,但是不太懂,看的是clj的原文,不太懂.现在只能临时看看是怎么弄的,应付下. ---------------------- ...
- SystemVerilog中枚举类型注意事项
enum logic {a = 'bx, d = 1'bz}; 在SystemVerilog枚举类型中当使用logic进行声明时,注意logic为四态,所以当使用时如果声明时需要x.z态需要显式声明. ...
- (转)CentOS7 LVM添加硬盘及扩容
原文:http://blog.51cto.com/qicheng0211/1620171 9818人阅读 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写 ...
- (转)CentOS分区操作详解
CentOS分区操作详解 原文:http://blog.csdn.net/yonggeit/article/details/77924393 磁盘分区 分区格式的两种选择:MBR和GPT 分区命令: ...
- Git学习系列之Git和TortoiseGit的区别
不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git. Git有且只有一个,就是linux最初创建的那个叫做Git的程序.现在的维护者的名字我懒得 ...
- 在Eclipse中生成javadoc
在<thinking in java>一书的第一章提到javadoc,以前也看过,每次看到这部就跳过了,没有真正去尝试过什么样子,今天终于亲自实践了一下,原来真的挺简单:一.编写java源 ...
- SQL Server 2008中的MERGE(数据同步)
OK,就像标题呈现的一样,SQL Server 2008中的MERGE语句能做很多事情,它的功能是根据源表对目标表执行插入.更新或删除操作.最典型的应用就是进行两个表的同步. 下面通过一个简单示例来演 ...
- Swift强制解析
IDE:Xcode Version7.3.1 Swift中"数据类型?"表示这是可选类型,即 某个常量或者变量可能是一个类型,也可能什么都没有,不确定它是否有值,也许会是nil. ...