HTML5新增video标签及对应属性、API详解
知识说明:
比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹。HTML5新增的video标签,将其属性以及API使用整理下来,无论以后用不用得到,都是自己的一笔宝贵的财富。
Video标签:
一、video支持视频格式:
以下是三种最常用的格式
1、 ogg格式:带有Theora视频编码(免费)+Vorbis音频编码的Ogg文件(免费)
支持的浏览器:firefox、chrome、opera
2、 MPEG4格式:带有H.264视频编码(收费)+AAC音频编码的MPEG4文件(收费)
支持的浏览器:safari、chrome
3、 Webm格式:带有VP8视频编码(免费)+Vorbis音频编码的WebM格式(免费)
支持的浏览器:IE、firefox、chrome、opera
优势:全免费、压缩比较好(小)、视频质量好
劣势:视频少、转码器几乎没有,不好转码
二、标签原型:
1、//指定一种视频格式,不能播就提示
代码片段:
<video src = “***.mp4” controls=”controls”>
您的浏览器不支持video标签,建议更新浏览器版本
</video>
2、//给定多种视频格式,浏览器根据自身支持程度选择播放哪一种
注意:多个source标签,浏览器会从第一个开始识别,如果第一个不被识别,则会继续识别第二个;如果第一个识别成功,则会直接播放第一种格式视频
代码片段:
<video controls = “controls”>
<source src=”1.mp4” type=”video/mp4” /> //src属性写到source标签中,要指定视频的type类型,例如MP4的即为type=“video/mp4”
<source src = “2.ogg” type=”video/ogg” /> //ogg格式
<source src=”3.webm” type=”video/webm” /> //webm格式
</video>
三、标签属性:
虽然有的属性是boolean类型,但仍旧建议按照XHTML书写(属性名=”属性值”)格式,避免出现错误 (下面红色加粗的属性为常用属性)
属性 |
值 |
功能描述 |
controls |
controls |
是否显示播放控件 |
autoplay |
autoplay |
设置是否打开浏览器后自动播放 |
width |
Pilex(像素) |
设置播放器的宽度 |
height |
Pilex(像素) |
设置播放器的高度 |
loop |
loop |
设置视频是否循环播放(即播放完后继续重新播放) |
preload |
preload |
设置是否等加载完再播放 |
src |
url |
设置要播放视频的url地址 |
poster |
imgurl |
设置播放器初始默认显示图片 |
autobuffer |
autobuffer |
设置为浏览器缓冲方式,不设置autoply才有效 |
四、video标签API:
Video标签也提供了比较人性化的API接口,供写JS时直接调用,方便简单
API |
事件说明 |
play |
video.play(); 播放视频 |
pause |
video.pause(); 暂停播放视频 |
load |
video.load(); 将全部属性回复默认值,视频恢复重新开始状态 |
canPlayType |
var support = videoid.canPlayType('video/mp4'); 判断浏览器是否支持当前类型的视频格式 返回值: 空字符串:不支持 Maybe:可能支持 Probably:完全支持 |
关于video标签的API在JS中用法如下:
<button onclick=”isPlay(this)”>播放</button>
<button onclick=”replay()”>重新播放</button>
<script>
var video = document.getElementById(‘video’); //括号内为video标签的id
//播放视频(点击播放按钮,后变成暂停)
function isPlay(obj)
{
If(video.paused)
{
Obj.innerHTML=”暂停”;
Video.play();
}else{
Obj.innerHTML=”播放”;
Video.pause();
}
}
//暂停播放
function replay()
{
Video.load();
}
//判断要播放的视频格式当前浏览器是否支持
function isPlayType()
{
Var support = video.canPlayType(“video/mp4”);
Console.log(support); //返回结果:空字符串、maybe(可能支持)、probably(支持)
}
</script>
五、video标签API属性:
Video不仅提供了API接口,还提供了许多的API属性,方便在JS中做判断,如下:
API属性 |
事件说明 |
duration |
返回媒体的播放总时长,单位秒 |
loop |
是否循环播放 |
muted |
是否静音 |
paused |
是否暂停 |
currentTime |
当前播放时间(单位:秒) |
volume |
音量值 |
networkState |
返回当前网络状态 |
playbackRate |
播放的倍速(加速、减速播放) |
src |
当前视频源的URL |
ended |
返回当前播放是否结束标志 |
error |
返回当前播放的错误状态 |
initialTime |
返回初始播放的位置 |
mediaGroup |
当前音视频所属媒体组 (用来链接多个音视频标签) |
played |
当前播放部件已经播放的时间范围(TimeRanges对象) |
preload |
页面加载时是否同时加载音视频 |
readyState |
返回当前的准备状态 |
seekable |
返回当前可跳转部件的时间范围(TimeRanges对象) |
audioTracks |
返回可用的音轨列表(MultipleTrackList对象) |
autoplay |
媒体加载后自动播放 |
buffered |
返回缓冲部件的时间范围(TimeRanges对象) |
controller |
返回当前的媒体控制器(MediaController对象) |
controls |
显示播控控件 |
crossOrigin |
CORS设置 |
currentSrc |
返回当前媒体的URL |
defaultMuted |
缺省是否静音 |
defaultPlaybackRate |
播控的缺省倍速 |
seeking |
返回用户是否做了跳转操作 |
startOffsetTime |
返回当前的时间偏移(Date对象) |
textTracks |
返回可用的文本轨迹(TextTrackList对象) |
videoTracks |
返回可用的视频轨迹(VideoTrackList对象) |
HTML5新增video标签及对应属性、API详解的更多相关文章
- HTML5新增Canvas标签及对应属性、API详解(基础一)
知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签 ...
- HTML5 Audio/Video 标签,属性,方法,事件汇总
HTML5 Audio/Video 标签,属性,方法,事件汇总 (转) 2011-06-28 13:16:48 <audio> 标签属性:src:音乐的URLpreload:预加载au ...
- HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)
HTML5 Audio/Video 标签,属性,方法,事件 <audio> 标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放contro ...
- [转帖]HTML5 Audio/Video 标签,属性,方法,事件汇总
HTML5 Audio/Video 标签,属性,方法,事件汇总 <audio>标签属性: src:音乐的URL preload:预加载 autoplay:自动播放 loop:循环播放 co ...
- 解决html5中video标签无法播放mp4问题的办法
这篇文章主要给大家介绍了关于解决html5中video标签无法播放mp4问题的办法,文中介绍的非常详细,相信会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 最近发现了一个 ...
- 在使用html5的video标签播放视频时为何只有声音却没有图像
在使用html5的video标签播放视频时为何只有声音却没有图像? 答:使用格式化工厂转个编码就行了,MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264)转换成H264编 ...
- html5的float属性超详解(display,position, float)(文本流)
html5的float属性超详解(display,position, float)(文本流) 一.总结 1.文本流: 2.float和绝对定位都不占文本流的位置 3.普通流是默认定位方式,就是依次按照 ...
- jqGrid APi 详解
jqGrid APi 详解 jqGrid皮肤 从3.5版本开始,jqGrid完全支持jquery UI的theme.我们可以从http://jqueryui.com/themeroller/下载我们所 ...
- DOM API详解
来源于:http://zxc0328.github.io/2016/01/23/learning-dom-part1/ https://zxc0328.github.io/2016/01/26/lea ...
随机推荐
- XAF去掉View页面的编辑器
如图,去掉该编辑器功能. 1.detailView protected override void OnActivated() { base.OnActivat ...
- C# XmlSerializer实现序列化浅析
C# XmlSerializer类是实现序列化的一个类,那么关于C# XmlSerializer的学习我们要掌握怎么样的操作方法呢?那么这里向你详细介绍具体的操作细节情况. C# XmlSeriali ...
- Word Reversal
For each list of words, output a line with each word reversed without changing the order of the wo ...
- IOS UIView 属性clipsToBounds
当一个view上加了一个SubView 并且subview 的size超出了view的size那么默认超出部分也会显示出来,要想不显示出来设置 view的clipsToBounds属性设置成YES:即 ...
- YTU 3023: 树的遍历
原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec 内存限制: 128 MB 提交: 3 解决: 2 题 ...
- Animation小问题整理
1.在动画播放中改变层级内容的名字,不会造成动画内容映射的改变. 2.Animator动画剪辑层级没问题,但是不播放 检查是否Mask损坏,FBX文件的Animations选项下面有个Mask.Uni ...
- javascript 设计模式1----单例模式
定义:保证一个类仅有一个实例,并提供一个访问的全局接口: 就是收:当我们 var a = new a(); var a1 = new a()是:a与a1是相等的.怎么实现呢,就是第一次实例化.第二不在 ...
- 视频 之自定义VideoView
package com.lvshandian.partylive.view;import android.content.Context;import android.util.AttributeSe ...
- php中session机制的详解
[补充]session_start()要放在php最前面,header()函数也要放在session_start()之后. [读了下面的文章转载的文章后自己的理解]: 1,通过phpinfo()函数可 ...
- Beaglebone Black – 连接 GY-91 MPU9250+BMP280 九轴传感器(2)
这次用 SPI.BBB 有两套 SPI 接口可用,两套都是默认 disable,需要用 overlay 方式启用,即: echo BB-SPIDEV0 > /sys/devices/bone_c ...