HTML5 新元素之VIDEO标签的js操作
本文参考w3school的HTML DOM Video 对象。
Video 对象属性
| 属性 | 描述 |
|---|---|
| audioTracks | 返回表示可用音频轨道的 AudioTrackList 对象。 |
| autoplay | 设置或返回是否在就绪(加载完成)后随即播放视频。 |
| buffered | 返回表示视频已缓冲部分的 TimeRanges 对象。 |
| controller | 返回表示视频当前媒体控制器的 MediaController 对象。 |
| controls | 设置或返回视频是否应该显示控件(比如播放/暂停等)。 |
| crossOrigin | 设置或返回视频的 CORS 设置。 |
| currentSrc | 返回当前视频的 URL。 |
| currentTime | 设置或返回视频中的当前播放位置(以秒计)。 |
| defaultMuted | 设置或返回视频默认是否静音。 |
| defaultPlaybackRate | 设置或返回视频的默认播放速度。 |
| duration | 返回视频的长度(以秒计)。 |
| ended | 返回视频的播放是否已结束。 |
| error | 返回表示视频错误状态的 MediaError 对象。 |
| height | 设置或返回视频的 height 属性的值。 |
| loop | 设置或返回视频是否应在结束时再次播放。 |
| mediaGroup | 设置或返回视频所属媒介组合的名称。 |
| muted | 设置或返回是否关闭声音。(true或false) |
| networkState | 返回视频的当前网络状态。 |
| paused | 设置或返回视频是否暂停。 |
| playbackRate | 设置或返回视频播放的速度。 |
| played | 返回表示视频已播放部分的 TimeRanges 对象。 |
| poster | 设置或返回视频的 poster 属性的值。 |
| preload | 设置或返回视频的 preload 属性的值。 |
| readyState | 返回视频当前的就绪状态。 |
| seekable | 返回表示视频可寻址部分的 TimeRanges 对象。 |
| seeking | 返回用户当前是否正在视频中进行查找。 |
| src | 设置或返回视频的 src 属性的值。 |
| startDate | 返回表示当前时间偏移的 Date 对象。 |
| textTracks | 返回表示可用文本轨道的 TextTrackList 对象。 |
| videoTracks | 返回表示可用视频轨道的 VideoTrackList 对象。 |
| volume | 设置或返回视频的音量。(0-1之间) |
| width | 设置或返回视频的 width 属性的值。 |
Video 对象方法
| 方法 | 描述 |
|---|---|
| addTextTrack() | 向视频添加新的文本轨道。 |
| canPlayType() | 检查浏览器是否能够播放指定的视频类型。 |
| load() | 重新加载视频元素。 |
| play() | 开始播放视频。 |
| pause() | 暂停当前播放的视频。 |
Video 对象方法补充:
在video的方法中没有涉及到视频的全屏js方法;经过查询资料,发现这个需要调用一些基础的js API来实现全屏的切换,
启动全屏模式
全屏API requestFullscreen方法在一些老的浏览器里面依然使用带前缀形式的方法名,因此可能需要进行检测判断:
(带前缀,意思就是各个浏览器内核不通用.)
// 找到支持的方法, 使用需要全屏的 element 调用
function launchFullScreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
} // 在支持全屏的浏览器中启动全屏
// 整个页面
launchFullScreen(document.documentElement);
// 某个元素
launchFullScreen(document.getElementById("videoElement"));
将需要全屏显示的DOM元素作为参数,调用此方法即可让window进入全屏状态,有时候可能需要用户同意(浏览器自己和用户交互),假若用户拒绝,则可能出现各种不完全的全屏.
如果用户同意进入全屏,那么工具栏以及其他浏览器组件会隐藏起来,使document框架的宽度和高度横跨整个屏幕.
退出全屏模式
使用 exitFullscreen 方法可以使浏览器退出全屏,返回原先的布局. 该方法在一些老的浏览器上也是支持前缀方法.
// 退出 fullscreen
function exitFullscreen() {
if(document.exitFullscreen) {
document.exitFullscreen();
} else if(document.mozExitFullScreen) {
document.mozExitFullScreen();
} else if(document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
//请注意: exitFullscreen 只能通过 document 对象调用 —— 而不是使用普通的 DOM element. // 调用退出全屏方法!
exitFullscreen();
Fullscreen 属性与事件
一个坏消息,到目前为止,全屏事件和方法依然是带前缀的,好消息就是很快主流浏览器就会都支持。
- document.fullscreenElement: 当前处于全屏状态的元素 element.
- document.fullscreenEnabled: 标记 fullscreen 当前是否可用.
当进入/退出 全屏模式时,会触发 fullscreenchange 事件:
var fullscreenElement =
document.fullscreenEnabled
|| document.mozFullscreenElement
|| document.webkitFullscreenElement;
var fullscreenEnabled =
document.fullscreenEnabled
|| document.mozFullscreenEnabled
|| document.webkitFullscreenEnabled;
另外,当元素处于全屏的时候,浏览器相应的会有一些全屏样式,如需修改,可以重写一下全屏的样式;
/* html */
:-webkit-full-screen {
/* properties */
}
:-moz-fullscreen {
/* properties */
} :fullscreen {
/* properties */
} /* deeper elements */
:-webkit-full-screen video {
width: 100%;
height: 100%;
} /* styling the backdrop */
::backdrop {
/* properties */
}
HTML5 新元素之VIDEO标签的js操作的更多相关文章
- 让IE8支持html5中的video标签
这是一篇综合几个前辈的解决方案. 使用video的时候,要遇到的问题. ①不兼容ie9及其以下版本 在<head>里添加两行, 参考张鑫旭前辈的博客,但是在ie8中薄播放. <!-- ...
- 检测是否支持HTML5中的Video标签
//检测是否支持HTML5 function checkVideo() { if (!!document.createElement('video').canPlayType) { var vidTe ...
- html5中的video标签和audio标签
不管是否承认,flash早已不像过往那样如日中天了.亚马逊全面放弃flash.苹果放弃flash.安卓也放弃了移动端的flash支持.事实上flash已经不太适合web开发了,因为HTML5中的vid ...
- HTML5 audio与video标签实现视频播放,音频播放
随着互联网的飞速发展以及HTML5的应用,越来越多的项目中用到video,audio当常用标签. <audio> 标签属性 <audio src="song.mp3&quo ...
- HTML5的自定义属性data-*详细介绍和JS操作实例
当然高级浏览器下可通过脚本进行定义和数据存取.在项目实践中非常有用. 例如: 复制代码 代码如下: <div id = "user" data-uid = "123 ...
- 【html5】 解决 video标签 不自动全屏
<video controls="controls" poster='' src='' preload="auto" x5-playsinline=&qu ...
- HTML5新增video标签及对应属性、API详解
知识说明: 比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹.HTML5新增的video标签,将其属性以及 ...
- mp4 格式无法使用html5的video标签播放
只有视频编码为h264的视频才能在html5中使用video标签播放 我的解决方法为:下载魔影工厂,按照如下图所示步骤操作: width:600px;
- 防止html5的video标签在iphone中自动全屏
问题: 当在iphone中打开html5页面中的video视频时,会默认调取系统播放器,全屏播放视频资源. 解决方式: 1. 首先在html5页面的video标签中添加webkit-playsinli ...
随机推荐
- 在使用NavigationController情况下的布局的Y轴的起始位置
在有的时候,当一个ViewController被push进一个NavigationController的时候,view上会有一个高度为64的NavigationBar(除非主动隐藏了Navigatio ...
- Neighbor Discovery Protocol Address Resolution Protocol
https://en.wikipedia.org/wiki/Address_Resolution_Protocol The Address Resolution Protocol (ARP) is a ...
- 一、2440裸机点亮led
从代码開始(先写一个像普通单片机一样的代码): /********led.c************************/ #define GPFCON (*(volatile unsigned ...
- Linux用户相关文件之组文件
组信息文件: 1.文件地址: /etc/group -rw-r--r--. 1 root root 492 10月 6 21:56 /etc/group 2.文件内容: xiaol:x:500: 3. ...
- Hadoop “Name node is in safe mode” 错误解决方法
Hadoop 解除 "Name node is in safe mode" 运行hadoop程序时,有时候会报以下错误:org.apache.hadoop.dfs.SafeMode ...
- Eclipse中svn操作
1.主干和分支间合并代码 合并根据目标不同分为2种: 1.分支合并到主干:主要用在修复完生产BUG,并上线之后.需把改动的代码合并到主干上. 2.主干合并到分支:公用的逻辑改动,需反映到所有并行的分支 ...
- boost之字符串与文本处理
C++标准库中字符串转数值使用函数atoi(),数值转字符串使用printf系列函数. boost中使用转换函数操作符lexical_cast<>进行转换,实际上是模板函数.自定义类型,要 ...
- 20170411 debug窗口执行文件
[FUNCTION] Command=/H Title=Debugger Type=SystemCommand
- ABAP重点各种接口技术
转自 http://www.cnblogs.com/penley/archive/2008/11/12/1332140.html 下面总结一下ABAP中的各种接口技术,因为学习时间不是很长,肯定还不全 ...
- Python学习笔记1_初识Python
一.Python的发展 1.CNRI时期:CNRI是自助Python发展初期的重要单位,Python1.5版之前的成果大部分都在此时期内完成 2.BeOpen时期:Guido van Rossum与B ...