前端多媒体(4)—— video标签全面分析

测试地址:https://young-cowboy.github.io/gallery/html5_video/index.html
属性
一些属性是只读的,一些属性是可以修改从而影响视频播放的。
- autoplay:视频会马上自动开始播放,不会停下来等着数据载入结束。
- 值可以是:autoplay;空;或者什么都不写
- preload:该枚举属性旨在告诉浏览器作者认为达到最佳的用户体验的方式是什么。可能是下列值之一:
- none: 提示作者认为用户不需要查看该视频,服务器也想要最小化访问流量;换句话说就是提示浏览器该视频不需要缓存。
- metadata: 提示尽管作者认为用户不需要查看该视频,不过抓取元数据(比如:长度)还是很合理的。auto: 用户需要这个视频优先加载;换句话说就是提示:如果需要的话,可以下载整个视频,即使用户并不一定会用它。
- 空字符串:也就代指 auto 值。
- 规范没有强制浏览器去遵循该属性的值;这仅仅只是个提示。
- controls: 提供用户控制,允许用户控制视频的播放,包括音量,跨帧,暂停/恢复播放。
- loop: 视频结尾的地方,自动返回视频开始的地方。
- 值为可以是:"loop";空;或者什么都不写
- poster: 一个海报帧的URL,用于在用户播放或者跳帧之前展示。
- height : 视频展示区域的高度,单位是CSS像素。
- width: 视频显示区域的宽度,单位是CSS像素。
- muted: 布尔属性,指明了视频里的音频的默认设置。设置后,音频会初始化为静音。默认值是false
- 值类型为:"loop";空;或者什么都不写
- src: 要嵌到页面的视频的URL。你也可以使用video块内的 source 元素来指定需要嵌到页面的视
- currentSrc: 返回当前音频/视频的 URL
- duration: 返回当前音频/视频的长度,以秒计。
- ended: 播放是否已结束
- paused: 视频是否已暂停。
- webkit-playsinline: 值:webkit-playsinline,在移动端是否原地播放而不全屏播放视频,从ios10 Safari开始支持,android场景不同效果不同
- playbackRate: 设置或返回视频的当前播放速度。
- 只有 Google Chrome 和 Safari 支持 playbackRate 属性。
- 1.0 正常速度
- 0.5 半速(更慢)
- 2.0 倍速(更快)
- -1.0 向后,正常速度
- -0.5 向后,半速
- seekable: 返回 TimeRanges 对象。
- TimeRanges 对象表示音频/视频中用户可寻址的范围。
- seeking: 返回用户目前是否在视频中寻址。
- volume: 设置或返回视频的当前音量。
- buffered: 这个属性可以读取到哪段时间范围内的媒体被缓存了。该属性包含了一个
TimeRanges对象。 - networkState : 网络状态
- NETWORK_EMPTY = 0; // 音频/视频尚未初始化
- NETWORK_IDLE = 1; // 音频/视频是活动的且已选取资源,但并未使用网络
- NETWORK_LOADING = 2; //浏览器正在下载数据
- NETWORK_NO_SOURCE = 3; // 未找到音频/视频来源
- readyState : 准备状态
- HAVE_NOTHING = 0; 没有关于音频/视频是否就绪的信息
- HAVE_METADATA = 1; 关于音频/视频就绪的元数据
- HAVE_CURRENT_DATA = 2; 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒
- HAVE_FUTURE_DATA = 3; 当前及至少下一帧的数据是可用的
- HAVE_ENOUGH_DATA = 4; 可用数据足以开始播放
事件
- abort : 在播放被终止时触发,例如, 当播放中的视频重新开始播放时会触发这个事件。
- canplay : 媒体数据已经有足够的数据(至少播放数帧)可供播放时触发。这个事件对应CAN_PLAY的readyState。
- canplaythrough : 在媒体的readyState变为CAN_PLAY_THROUGH时触发,表明媒体可以在保持当前的下载速度的情况下不被中断地播放完毕。注意:手动设置currentTime会使得firefox触发一次canplaythrough事件,其他浏览器或许不会如此。
- emptied :媒体被清空(初始化)时触发。
- ended :播放结束时触发。
- error :在发生错误时触发。元素的error属性会包含更多信息。参阅Error handling获得详细信息。
- loadeddata : 媒体的第一帧已经加载完毕。
- loadedmetadata : 媒体的元数据已经加载完毕,现在所有的属性包含了它们应有的有效信息。
- loadstart :在媒体开始加载时触发。
- pause :播放暂停时触发。
- play : 在媒体回放被暂停后再次开始时触发。即,在一次暂停事件后恢复媒体回放。
- playing :在媒体开始播放时触发(不论是初次播放、在暂停后恢复、或是在结束后重新开始)。
- durationchange : 元信息已载入或已改变,表明媒体的长度发生了改变。例如,在媒体已被加载足够的长度从而得知总长度时会触发这个事件
- progress : 告知媒体相关部分的下载进度时周期性地触发。有关媒体当前已下载总计的信息可以在元素的buffered属性中获取到。
- ratechange : 在回放速率变化时触发。
- seeked : 在跳跃操作完成时触发。
- seeking : 在跳跃操作开始时触发。
- stalled : 在尝试获取媒体数据,但数据不可用时触发。
- suspend : 在媒体资源加载终止时触发,这可能是因为下载已完成或因为其他原因暂停。
- timeupdate : 元素的currentTime属性表示的时间已经改变。
- volumechange : 在音频音量改变时触发(既可以是volume属性改变,也可以是muted属性改变)。
- waiting : 在一个待执行的操作(如回放)因等待另一个操作(如跳跃或下载)被延迟时触发。
方法
- play : 开始播放
- pause: 暂停播放
- load: 更改视频来源,并重载视频:Safari 不支持
document.getElementById("mp4_src").src="movie.mp4";
document.getElementById("ogg_src").src="movie.ogg";
document.getElementById("video1").load();
- canPlayType():检测浏览器是否能播放指定的音频/视频类型
- 所有浏览器都支持 canPlayType() 方法。
- probably: 浏览器最可能支持该音频/视频类型,这里的词都是可难这种词语,是因为视频播放器不真正的播放视频是无法知道是否支持播放
- maybe: 浏览器也许支持该音频/视频类型
- "" (空字符串):浏览器不支持该音频/视频类型
- 常见的类型+解码器
- video/ogg; codecs="theora, vorbis"
- video/mp4; codecs="avc1.4D401E, mp4a.40.2"
- video/webm; codecs="vp8.0, vorbis"
- audio/ogg; codecs="vorbis"
- audio/mp4; codecs="mp4a.40.5"
参考资料
前端多媒体(4)—— video标签全面分析的更多相关文章
- HTML5新增video标签及对应属性、API详解
知识说明: 比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹.HTML5新增的video标签,将其属性以及 ...
- 如何禁止 iPhone Safari video标签视频自动全屏?
最近做一个移动端微信页面项目,在微信页面中有视频播放,但是需要禁止IOS的自动全屏播放(前提必须使用video标签).如: <video id="post" autoplay ...
- 大事记 - 安卓微信浏览器 video 标签层级过高
// 为什么叫<大事记>? // 以前总有面试官问这样一个问题:“你在项目中遇到过最头疼的问题是什么,是怎么解决的?” // 当时总觉得,已解决的问题都算不上头疼,所以回答总是不尽人意. ...
- video 标签在微信浏览器的问题解决方法
最近做的些web页面,内嵌许多小视频,在ios和安卓手机上播放时,遇到不少问题: 在微信浏览器内播放时,视频会自动全屏 如果每个视频都有一张自定义的图片作为封面,在显示视频的同时,如果没有给这个视频设 ...
- 用HTML5 video标签插入视频,在谷歌浏览器上播放视频时,右下角显示的下载按钮怎么去掉
使用H5的video标签可以直接插入视频,一般在浏览器效果如下图显示: 但有时在谷歌浏览器上显示,会遇到右下角有下载按钮.如果项目要求去掉这个下载按钮,怎么办呢?如下图显示: 分析: 经本人测试,是谷 ...
- 解决html5中video标签无法播放mp4问题的办法
这篇文章主要给大家介绍了关于解决html5中video标签无法播放mp4问题的办法,文中介绍的非常详细,相信会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 最近发现了一个 ...
- [JavaScript] html5 video标签注意事项
Chrome 66 禁止声音自动播放 声音无法自动播放这个在IOS/Android上面一直是个惯例,桌面版的Safari在2017年的11版本也宣布禁掉带有声音的多媒体自动播放功能,紧接着在2018年 ...
- <video>标签的特性
以前的网页视频 过去还没有HTML5的时候,我们处理网页视频的时候,都是通过Flash插件来实现的,然而,并非所有浏览器都有同样的插件. 现在有了HTML5带来的video元素,开发者能够很方便地将视 ...
- html5 video标签如何禁止视频下载
html5 video标签如何禁止视频下载 一.总结 一句话总结:bing方法给video对象绑定return false的匿名方法. 1.html5 video标签如何禁止视频下载? bing方法给 ...
随机推荐
- UTF-8 可变编码格式
转自:http://blog.csdn.net/swedenfeng/article/details/53467720 UTF-8 是一种可变编码格式,长度从一个字节到四个字节,可根据UTF-8字 ...
- Linux学习日志--共享内存
一:什么是共享内存 共享内存是属于IPC(Inter-Process Communication进程间通信)机制,其它两种是信号量和消息队列,该机制为进程开辟创建了特殊的地址范 ...
- Windows 命令集合
查看端口占用 查看8080端口使用情况: C:\>netstat -aon|findstr "8080" 结果:TCP 0.0.0.0:8080 0 ...
- SpringMvc自动代理
自动配置的好处是不需要挨个 实现[org.springframework.aop.framework.ProxyFactoryBean] ,只需要 advisor 配置和 <bean id=&q ...
- requestWindowFeature使用详解
requestWindowFeature可以设置的值有: // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 // 2.FEATURE_CONTEXT_MENU:启 ...
- php解码“&#”编码的中文用函数html_entity_decode()
遇到类似 ' 这种编码的字,我们可以用html_entity_decode()函数来解码. html_entity_decode() 函数把 HTML 实体转换为字符. 语法 html_entity_ ...
- IIS 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。 HTTP 错误 500.19
因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改.运行命令行 %windir%\system32\inetsrv\appcmd unlock conf ...
- Erlang节点重启导致的incarnation问题(转)
转自霸爷的博客: 转载自系统技术非业余研究 本文链接地址: Erlang节点重启导致的incarnation问题 遇到个问题, =ERROR REPORT==== 10-Mar-2016::09:44 ...
- 用HttpClient模拟HTTP的GET和POST请求(转)
本文转自:http://blog.csdn.net/xiazdong/article/details/7724349 一.HttpClient介绍 HttpClient是用来模拟HTTP请求的,其 ...
- uget + aria2
@.Ubuntu 16.04下安装 原文:http://blog.csdn.net/xiaohouye/article/details/54603198 安装完成后可在终端输入:uget-gtk打开u ...