测试地址: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标签全面分析的更多相关文章

  1. HTML5新增video标签及对应属性、API详解

    知识说明: 比不上很牛的前端开发人员,但自始至终明白“万丈高楼平地起”,基础最重要,初学HTML5,稳固基础第一步,把最基本的整理下来,留下自己学习的痕迹.HTML5新增的video标签,将其属性以及 ...

  2. 如何禁止 iPhone Safari video标签视频自动全屏?

    最近做一个移动端微信页面项目,在微信页面中有视频播放,但是需要禁止IOS的自动全屏播放(前提必须使用video标签).如: <video id="post" autoplay ...

  3. 大事记 - 安卓微信浏览器 video 标签层级过高

    // 为什么叫<大事记>? // 以前总有面试官问这样一个问题:“你在项目中遇到过最头疼的问题是什么,是怎么解决的?” // 当时总觉得,已解决的问题都算不上头疼,所以回答总是不尽人意. ...

  4. video 标签在微信浏览器的问题解决方法

    最近做的些web页面,内嵌许多小视频,在ios和安卓手机上播放时,遇到不少问题: 在微信浏览器内播放时,视频会自动全屏 如果每个视频都有一张自定义的图片作为封面,在显示视频的同时,如果没有给这个视频设 ...

  5. 用HTML5 video标签插入视频,在谷歌浏览器上播放视频时,右下角显示的下载按钮怎么去掉

    使用H5的video标签可以直接插入视频,一般在浏览器效果如下图显示: 但有时在谷歌浏览器上显示,会遇到右下角有下载按钮.如果项目要求去掉这个下载按钮,怎么办呢?如下图显示: 分析: 经本人测试,是谷 ...

  6. 解决html5中video标签无法播放mp4问题的办法

    这篇文章主要给大家介绍了关于解决html5中video标签无法播放mp4问题的办法,文中介绍的非常详细,相信会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 最近发现了一个 ...

  7. [JavaScript] html5 video标签注意事项

    Chrome 66 禁止声音自动播放 声音无法自动播放这个在IOS/Android上面一直是个惯例,桌面版的Safari在2017年的11版本也宣布禁掉带有声音的多媒体自动播放功能,紧接着在2018年 ...

  8. <video>标签的特性

    以前的网页视频 过去还没有HTML5的时候,我们处理网页视频的时候,都是通过Flash插件来实现的,然而,并非所有浏览器都有同样的插件. 现在有了HTML5带来的video元素,开发者能够很方便地将视 ...

  9. html5 video标签如何禁止视频下载

    html5 video标签如何禁止视频下载 一.总结 一句话总结:bing方法给video对象绑定return false的匿名方法. 1.html5 video标签如何禁止视频下载? bing方法给 ...

随机推荐

  1. jenkins构建一个go项目

    Jenkins安装   最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8 安装jdk1.8 yum install -y java-1.8.0-openjdk wget -O / ...

  2. 分享下多年积累的对JAVA程序员成长之路的总结

    http://blog.csdn.net/zhongzelin/article/details/8643269我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱 ...

  3. 实用国际(XX)计量单位表

    很多实用附录简表:http://www.zdic.net/appendix/f1.htm 计量单位简表 时间的单位换算 : 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)  1秒=1,00 ...

  4. jQuery与ajax的应用(一)

    <body> <div id="resText"></div> <div id="reshtml"></d ...

  5. php 导出CSV抽象类

    php 导出CSV抽象类,依据总记录数与每批次记录数,计算总批次.循环导出.避免内存不足的问题. ExportCSV.class.php <? php /** php Export CSV ab ...

  6. 创建自己的taglib 并打包入jar

    1. Create a TLD (tag library descriptor) file namedmy-tags.tld. For more information, see Creating a ...

  7. git系列1

    git clone支持多种协议,除了HTTP(s)以外,还支持SSH.Git.本地文件协议等,下面是一些例子. $ git clone http[s]://example.com/path/to/re ...

  8. 目标检测之人头检测(HaarLike Adaboost)---高密度环境下行人检测和统计

    实验程序视频 下载 1 问题描述 高密度环境下的行人统计一直没有得到很好的解决,主要原因是对高密度人群中的行人检测和跟踪是一个很难的问题,如下图所示环境,存在的困难包括: 检测方面: 由于人群整体处于 ...

  9. 创业做移动互联网App的4个注意事项

    导语:大多数人对于做App还是比較盲目,有个想法立刻就去做了.做出来了才忽然想到市场和推广.我把做移动 互联网App注意事项情给大家列下. 文| 移动互联网李建华 近 来,常常有人问我关于推广的事情, ...

  10. iPhone,iPad如何获取WIFI名称即SSID

    本文转载至 http://blog.csdn.net/wbw1985/article/details/20530281  2010年开始苹果清理了一批APP Store上的WIFI扫描软件, 缘由语焉 ...