概览

html5新增了两个关于多媒体的元素:video和audio,前者是用于视频,后者用于音频。而他们使用非常简单

<audio src="xhn.mp3" controls="controls">
您的浏览器不支持
</audio>
<hr>
<video src="BigBuckBunny_640x360.mp4" height="200" controls="controls">
您的浏览器不支
</video>

主要是src属性,让它指向资源文件即可,视觉如下:

然而各浏览器对视频编码格式的支持不一致,因此上面的示例在chrome是OK的,但在firefox下却不能正常显示,为了兼容可以通过source元素来为同一个媒体指定多个播放格式和编码方式,浏览器会按照代码的顺序来选择,直到找到支持的格式为止。

<video height="200" controls="controls">
<source src="BigBuckBunny_640x360.mp4" type="video/mp4"/>
<source src="BigBuckBunny_640x360.ogv" type='video/ogg; codecs="theora,vorbis"'/>
您的浏览器不支持
</video>

source元素具有几个属性:

  • src - 媒体的url地址;
  • type - 媒体类型,值是媒体文件的MIME;
  • codecs - 使用的编码格式;

虽然type属性是可选属性,但最好不要省略,否则浏览器会从上到下选择时无法判断是否能播放,而先行加载一段数据!

属性

vidio和audio的属性大致相同,就一块来看看

  • autoplay - 如果出现该属性,则视频在就绪后马上播放。
  • controls - 如果出现该属性,则向用户显示控件,比如播放按钮。
  • height - 设置视频播放器的高度。
  • loop - 如果出现该属性,则当媒介文件完成播放后再次开始播放。
  • preload - 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。该属性有三个可选的值:none、metadata和auto(默认值),metadata表示只预加载媒体的元数据(媒体字节数、第一帧、播放列表、持续时间等)。
  • src - 要播放的视频的 URL。
  • width - 设置视频播放器的宽度。
  • poster - 这是vidio独有的元素,当视频不可用的时,可以用该属性向用户展示一幅替代的图片。
  • error - 正常情况该属性值为null,一旦出现异常该属性值为一个MediaError对象,该对象的code返回对应的错误状态,错误状态共有4中。
    1 = MEDIA_ERR_ABORTED - 取回过程被用户中止
    2 = MEDIA_ERR_NETWORK - 当下载时发生错误
    3 = MEDIA_ERR_DECODE - 当解码时发生错误
    4 = MEDIA_ERR_SRC_NOT_SUPPORTED - 不支持音频/视频
  • 更多属性,请参考:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp

方法

  • addTextTrack() - 向音频/视频添加新的文本轨道
  • canPlayType() - 检测浏览器是否能播放指定的音频/视频类型
  • load() - 重新加载音频/视频元素
  • play() - 开始播放音频/视频
  • pause() - 暂停当前播放的音频/视频

事件

  • audioTracks - 返回表示可用音轨的 AudioTrackList 对象
  • autoplay - 设置或返回是否在加载完成后随即播放音频/视频
  • buffered - 返回表示音频/视频已缓冲部分的 TimeRanges 对象
  • controller - 返回表示音频/视频当前媒体控制器的 MediaController 对象
  • controls - 设置或返回音频/视频是否显示控件(比如播放/暂停等)
  • crossOrigin - 设置或返回音频/视频的 CORS 设置
  • currentSrc - 返回当前音频/视频的 URL
  • currentTime - 设置或返回音频/视频中的当前播放位置(以秒计)
  • defaultMuted - 设置或返回音频/视频默认是否静音
  • defaultPlaybackRate - 设置或返回音频/视频的默认播放速度
  • duration - 返回当前音频/视频的长度(以秒计)
  • ended - 返回音频/视频的播放是否已结束
  • error - 返回表示音频/视频错误状态的 MediaError 对象
  • loop - 设置或返回音频/视频是否应在结束时重新播放
  • mediaGroup - 设置或返回音频/视频所属的组合(用于连接多个音频/视频元素)
  • muted - 设置或返回音频/视频是否静音
  • networkState - 返回音频/视频的当前网络状态
  • paused - 设置或返回音频/视频是否暂停
  • playbackRate - 设置或返回音频/视频播放的速度
  • played - 返回表示音频/视频已播放部分的 TimeRanges 对象
  • preload - 设置或返回音频/视频是否应该在页面加载后进行加载
  • readyState - 返回音频/视频当前的就绪状态
  • seekable - 返回表示音频/视频可寻址部分的 TimeRanges 对象
  • seeking - 返回用户是否正在音频/视频中进行查找
  • src - 设置或返回音频/视频元素的当前来源
  • startDate - 返回表示当前时间偏移的 Date 对象
  • textTracks - 返回表示可用文本轨道的 TextTrackList 对象
  • videoTracks - 返回表示可用视频轨道的 VideoTrackList 对象
  • volume - 设置或返回音频/视频的音量

可以使用两种方式来捕捉这些事件

  1. 监听

    addEventListener(type:String, listener:Function, useCapture:Boolean)

    type:String:事件的类型。
    listener:Function:侦听到事件后处理事件的函数,此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果。
    useCapture:Boolean (default = false):这里牵扯到“事件流”的概念。侦听器在侦听时有三个阶段:捕获阶段、目标阶段和冒泡阶段。顺序为:捕获阶段(根节点到子节点检查是否调用了监听函数)→目标阶段(目标本身)→冒泡阶段(目标本身到根节点)。此处的参数确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。 如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。 如果useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。 要在所有三个阶段都侦听事件,请调用两次 addEventListener,一次将 useCapture 设置为 true,第二次再将useCapture 设置为 false。

  2. 事件句柄
    <video height="200" controls="controls" poster="p.jpg" onPlay="doplay()">

HTML5之多媒体的更多相关文章

  1. IT兄弟连 HTML5教程 多媒体应用 小结及习题

    小结 在互联网上,图像和链接则是通过URL唯一确定信息资源的位置.URL分为绝对URL和相对URL.通过使用<img />标记在浏览器中显示一张图像.超文本具有的链接能力,可层层链接相关文 ...

  2. HTML5 02. 多媒体控件、拖拽事件、历史记录、web存储、应用程序缓存、地理定位、网络状态

    多媒体 video:是行内块(text-align: center; 对行内块适用) <figure></figure>: 多媒体标签 : <figcaption> ...

  3. IT兄弟连 HTML5教程 多媒体应用 新增多媒体播放元素

    在HTML5之前,要在网站上展示视频.音频.动画等多媒体信息,除了使用第三方自主开发的播放器,使用最多的工具应该算是Flash了,但是它们都需要在浏览器中安装各种插件才能使用,有时速度很慢.HTML5 ...

  4. IT兄弟连 HTML5教程 多媒体应用 HTML图像地图

    图像地图是带有可点击区域的图像,通常情况下,每个区域是一个相关的超级链接.点击某个区域,就会到达相关的链接,也可以通过图像地图实现图片切换效果. 1  什么是图像地图 把一幅图像分成为多个区域,每个区 ...

  5. HTML5笔记1——HTML5的发展史及标签的改变

    记得第一次接触HTML5还是在<联信永益>实习那会儿(2011),当时一个项目技术选型的时候面临两种选择,分别是Silverlight和HTML5,那是用的最新的IE浏览器版本还是IE9, ...

  6. 10个最常见的 HTML5 面试题及答案

    这是选择了10个 HTML5 面试问题并给出了答案.这是 Web 开发人员最常见的面试问题,相信你掌握了这些重要的面试问题后一定会觉得你的理解提高了.一起来看看吧. 您可能感兴趣的相关文章 Web 前 ...

  7. HTML5标签改变

    1.新的文档类型声明(DTD): HTML 5的DTD声明为: <!doctype html> <!DOCTYPE html >等也是正确的,因为HTML语法是不区分大小写的. ...

  8. 菜鸟学习HTML5+CSS3(一)

    主要内容: 1.新的文档类型声明(DTD) 2.新增的HTML5标签 3.删除的HTML标签 4.重新定义的HTML标签 一.新的文档类型声明(DTD)    HTML 5的DTD声明为:<!d ...

  9. HTML5 基础

    1.HTML5 简介 HTML5 是最新的 HTML 标准,他是万维网的核心语言.标准通用标记语言下的一个应用“超文本标记语言”. HTML 的上一个标准 HTML4.01 诞生于 1999年,他的第 ...

随机推荐

  1. php 常用代码段

    1.写文件 $fp = fopen("jsapi_ticket.json", "w+"); fwrite($fp, $str); fclose($fp); 2. ...

  2. java_web学习(12)JDBC

    数据持久化       持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的 ...

  3. webstorm常用快捷键及插件

    子曰:工欲善其事,必先利其器.那么问题来了,前端开发用什么比较好? 我反正用的是webstorm,之前也花了一些时间看看别人的使用方式.下面分类介绍一下. 常用快捷键: double shift : ...

  4. HTML最基础的入门(上)

    一.互联网原理 互联网原理:上网即请求数据. 过程:在本机计算机浏览器上输入网址,发送一个http请求到服务器端,服务器会根据协议作出响应,将对应的网页文件通过http协议再传输给我们本地计算机,将网 ...

  5. DNS信息

    主机A记录: 描述主机地址记录,在dns域名和ip地址之间建立映射关系语法: owner class ttl A IP_v4_address eg: host1.example.mircrosoft. ...

  6. JAVA中StringBuffer类常用方法

    String是不变类,用String修改字符串会新建一个String对象,如果频繁的修改,将会产生很多的String对象,开销很大.因此java提供了一个StringBuffer类,这个类在修改字符串 ...

  7. 【Scala】Scala之Numbers

    一.前言 前面已经学习了Scala中的String,接着学习Scala的Numbers. 二.Numbers 在Scala中,所有的数字类型,如Byte,Char,Double,Float,Int,L ...

  8. gulp实时编译less,压缩合并requirejs模块文件

    gulp的使用命令简单,就几个,gulp的简单使用教材可以参考一点的gulp使用教材(http://www.ydcss.com/archives/18). 下面就简单的介绍这些命令如何互相配合的完成前 ...

  9. js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))

    ( function(){…} )() ( function (){…} () ) 是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达 ...

  10. Vuex核心知识(2.0)

    Vuex 是一个专门为 Vue.js 应该程序开发的状态管理模式,它类似于 Redux 应用于 React 项目中,他们都是一种 Flux 架构.相比 Redux,Vuex 更简洁,学习成本更低.希望 ...