概览

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. 2.3. 实体(Core Data 应用程序实践指南)

    Entity 实体,就像是数据表的映射类.用实体就可以创建托管对象了. 实体需要做的就是设置实体名称.实体属性及属性数据类型. 还可以根据实体配置NSManagedObject的子类(可选),创建子类 ...

  2. Java 伪静态 Mapping

    1. 概念 伪静态,简单来说是指转换url地址,在这里用来替换掉urlMapping.因为urlMapping需要为每一个页面都进行配置,非常麻烦. 2. RequestMapping 3. Spri ...

  3. swift 定位 根据定位到的经纬度转换城市名

    好久没写随笔了   最近这段时间项目有点紧  天天在加班  国庆 一天假都没放  我滴娃娃   好啦  牢骚就不发了  毕竟没有什么毛用    待我那天闲了专门写一篇吐槽的随笔  

  4. HTML 5 服务器发送事件、Input 类型、表单元素、表单属性

    HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器 ...

  5. jQuery选择器,用逗号分隔的时候需要注意范围问题

    jQuery选择器,用逗号分隔的时候需要注意范围问题: <%@ page language="java" import="java.util.*" pag ...

  6. Spring context:component-scan代替context:annotation-config

    Spring context:component-scan代替context:annotation-config XML: <?xml version="1.0" encod ...

  7. doubango介绍

    1.doubango官网:http://www.doubango.org/ 2.doubango是一个开源的VOIP基础平台, 并能用于嵌入式和桌面系统的开源框架,该框架使用ANSCI-C编写,具有很 ...

  8. es6笔记6^_^generator

    1.简介 Generator函数是一个函数的内部状态的遍历器(也就是说,Generator函数是一个状态机). 形式上,Generator函数是一个普通函数,但是有两个特征. function命令与函 ...

  9. 《JAVASCRIPT高级程序设计》第五章(1)

    引用类型是一种将数据和功能组合到一起的数据结构,它与类相似,但是是不同的概念:ECMAScript虽然是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和结构等基本结构.引用类型也被称为“对 ...

  10. Xamarin开发IOS系列教程一:安装黑苹果

    经过一番思想挣扎和斗争之后,最终还是选择采用Xamarin来开发跨平台移动应用,好处和优点大家可以搜索其它博文,因为家里面穷加上谈了恋爱,就不买苹果了,开发阶段在Windows上面直接搞定哈,时候不早 ...