前端多媒体(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方法给 ...
随机推荐
- C语言八进制和十六进制数
一 赋值 int dex = 100;// 默认十进制 int oct = 0144;// 八进制,以0開始 int hex = 0x64;// 十六进制,以0x開始 二 输出 void show(i ...
- linux:date命令(转)
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
- HDU - 3874 Necklace (线段树 + 离线处理)
欢迎參加--每周六晚的BestCoder(有米! ) Necklace Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 65536/3 ...
- leetCode 61.Rotate List (旋转链表) 解题思路和方法
Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. For ex ...
- php解析带有命名空间的xml
xml如果带有命名空间我们将如何解析,例如: <ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd ...
- MySQL 原理性
1.MySQL的复制原理以及流程 (1).复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程——在使用start ...
- x86 的 TSS 任务切换机制
转自:http://blog.chinaunix.net/uid-587665-id-2732907.html [0]写在前面 segment descriptors 构建保护模式下的最基本.最根本的 ...
- 【转】Android7.0版本以上的手机Eclipse无法打出LogCat
本来想用Eclipse连下手机看下log的,结果LogCat没打出来任何信息,起初怀疑是我的DDMS有问题,结果连了下我老大的手机,完美打出log,看了下Android系统,老大的是6.0的,我的7. ...
- SERVICE_STATUS结构各成员解析
在编写Windows服务的时候,需要调用API函数::SetServiceStatus()向服务控制管理器(SCM)提交更新当前服务的状态信息,其第2个参数为指向SERVICE_STATUS结构的指针 ...
- yii2学习笔记
之前看过Yii2框架,也在其他框架实现其Gii手脚架功能,现在开始使用Yii做项目,顺便记录一下学习笔记 先推荐一个网址 Yii2速查表(中文版)http://nai8.me/tool-sc.html ...