首页 前端知识 HTML5新增video和audio标签

HTML5新增video和audio标签

2024-06-18 22:06:02 前端知识 前端哥 515 438 我要收藏

video

概念

HTML <video> 元素 用于在 HTML 或者 XHTML(可扩展超文本标记语言) 文档中嵌入媒体播放器,用于支持文档内的视频播放。

也可以将 <video> 标签用于音频内容,但是 <audio> 元素可能在用户体验上更合适。

注意:在不支持 video 元素的浏览器中,<video></video> 标签中间的内容会显示,作为降级处理。

属性

类似于所有其他 HTML 元素,video 元素也支持 全局属性。

src

要嵌到页面的视频的 URL。

也可以使用 video 块内的 <source> 元素来指定需要嵌到页面的视频。

语法:<video src="url"></video>

height

视频显示区域的高度,单位是 px。

注意:只支持绝对值,不支持百分比(%)。

语法:<video height="100px"></video>

width

视频显示区域的高度,单位是 px。

注意:只支持绝对值,不支持百分比(%)。

语法:<video width="100px"></video>

autoplay

自动播放。

语法:<video autoplay></video>

注意:在某些浏览器中(如:Chrome),需要设置 muted 属性(静音)自动播放才生效。

controls

在视频底部提供一个控制面板,允许用户控制视频的播放,包括音量,跨帧,暂停/恢复播放。

语法:<video controls></video>

loop

在视频播放结束的时候,自动返回视频开始的地方,继续播放。(循环播放)

语法:<video loop></video>

muted

初始化为静音播放。(不设置默认有声音)

语法:<video muted></video>

poster

海报帧图片 URL,用于在视频处于下载中的状态时显示。

如果未指定该属性,则在视频第一帧可用之前不会显示任何内容,然后将视频的第一帧会作为海报帧来显示。

语法:<video poster="url"></video>

preload

该枚举属性旨在提示浏览器,作者认为在播放视频之前,加载哪些内容会达到最佳的用户体验。可能是下列值之一:

  • none:表示不应该预加载视频。
  • metadata:表示仅预先获取视频的元数据(例如长度)。
  • auto:表示可以下载整个视频文件,即使用户不希望使用它。
  • “”:和值为 auto 一致。每个浏览器的默认值都不相同,即使规范建议设置为 metadata

注意:autoplay 属性的优先级比 preload 高。如果制定了 autopaly 属性,浏览器显然需要开始下载视频以便回放。

语法:<video preload="none"></video>

crossorigin

该枚举属性指明是否使用 CORS(跨域资源共享)来获取相关视频。允许 CORS 的资源 可在 <canvas> 元素中被重用,而不会被污染。允许的值如下:

  • anonymous:在发送跨域请求时不携带凭证(credential)信息。

    浏览器在发送 HTTP 请求时,请求头不会携带 cookie、X.509 安全令牌、也不会执行任何 HTTP 基本身份验证。如果服务器没有给予源站点信任(也就是说没有设置 Access-Control-Allow-Origin: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。

  • use-credentials:在发送跨域请求时携带凭证(credential)信息。

    浏览器在发送 HTTP 请求时,请求头携带 cookie、X.509 安全令牌、也不会执行任何 HTTP 基本身份验证。如果服务器没有给予源站点信任(也就是说没有设置 Access-Control-Allow-Origin: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。

不加 crossorigin 属性时,获取资源不会使用 CORS 请求,保证其在 <canvas> 元素中使用时不会被污染。

如果指定非法值,会被当作指定了枚举关键字 anonymous 一样使用。

语法:<audio crossorigin="anonymous"></audio>

事件

  • canplay:不需要缓存全部的视频内容,直接开始播放。
  • canplaythrough:需要缓存全部的视频内容,才开始播放。
  • complete:OfflineAudioContext 渲染完成。
  • durationchange:duration 属性的值改变时触发。
  • emptied:媒体内容变为空。
  • ended:视频停止播放,因为 media 已经到达结束点。
  • loadeddata:media 中的首帧已经完成加载。
  • loadedmetadata:已加载元数据。
  • play:播放已开始。
  • pause:播放已暂停。
  • playing:由于缺乏数据而暂停或延迟后,播放准备开始。
  • progress:在浏览器加载资源时周期性触发。
  • ratechange:播放速率发生变化。
  • seeking:跳帧操作开始。
  • seeked:跳帧操作完成。
  • stalled:用户代理正在尝试获取媒体数据,但数据意外未出现。
  • suspend:媒体数据加载已暂停。
  • timeupdate:currentTime 属性指定的时间发生变化。
  • volumechange:音量发生变化。
  • waiting:由于暂时缺少数据,播放已停止。

示例

不同浏览器所支持的视频格式各不相同,但 mp4 格式是几乎所有浏览器都支持的,所以尽量使用 mp4 格式的视频。(可以通过在 <source> 元素里提供多个视频源,然后浏览器将会使用它所支持的第一个源)

浏览器MP4WebMOgg
IEYESNONO
ChromeYESYESYES
FirefoxYESYESYES
SafariYESNONO
OperaYESYESYES
<video controls>
  <source src="myVideo.mp4" type="video/mp4">
  <source src="myVideo.webm" type="video/webm">
  <p>Your browser doesn't support HTML5 video. Here is a <a href="myVideo.mp4">link to the video</a> instead.</p>
</video>

audio

概念

<audio> HTML 元素用于在文档中嵌入音频内容。

<audio> 元素可以包含一个或多个音频资源,这些音频资源可以使用 src 属性或者 <source> 元素来进行描述:浏览器将会选择最合适的一个来使用。也可以使用 MediaStream 将这个元素用于流式媒体。

属性

该元素包含 全局属性。

src

要嵌到页面的视频的 URL。

也可以使用 audio块内的 <source> 元素来指定需要嵌到页面的视频。

语法:<audiosrc="url"></audio>

autoplay

自动播放。

语法:<audio autoplay></audio>

controls

提供一个包含声音,播放进度,播放暂停的控制面板,让用户可以控制音频的播放。

语法:<audio controls></audio>

loop

在视频播放结束的时候,自动返回视频开始的地方,继续播放。(循环播放)

语法:<audio loop></audio>

muted

初始化为静音播放。(不设置默认有声音)

语法:<audio muted></audio>

poster

海报帧图片 URL,用于在视频处于下载中的状态时显示。

如果未指定该属性,则在视频第一帧可用之前不会显示任何内容,然后将视频的第一帧会作为海报帧来显示。

语法:<audio poster="url"></audio>

preload

该枚举属性旨在提示浏览器,作者认为在播放视频之前,加载哪些内容会达到最佳的用户体验。可能是下列值之一:

  • none:表示不应该预加载视频。
  • metadata:表示仅预先获取视频的元数据(例如长度)。
  • auto:表示可以下载整个视频文件,即使用户不希望使用它。
  • “”:和值为 auto 一致。每个浏览器的默认值都不相同,即使规范建议设置为 metadata

注意:autoplay 属性的优先级比 preload 高。如果制定了 autopaly 属性,浏览器显然需要开始下载视频以便回放。

语法:<audio preload="none"></audio>

currentTime(只读)

当前播放的位置(单位为秒)。

duration(只读)

音频在时间轴中的持续时间(总长度),以秒为单位。

crossorigin

该枚举属性指明是否使用 CORS(跨域资源共享)来获取相关视频。允许 CORS 的资源 可在 <canvas> 元素中被重用,而不会被污染。允许的值如下:

  • anonymous:在发送跨域请求时不携带凭证(credential)信息。

    浏览器在发送 HTTP 请求时,请求头不会携带 cookie、X.509 安全令牌、也不会执行任何 HTTP 基本身份验证。如果服务器没有给予源站点信任(也就是说没有设置 Access-Control-Allow-Origin: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。

  • use-credentials:在发送跨域请求时携带凭证(credential)信息。

    浏览器在发送 HTTP 请求时,请求头携带 cookie、X.509 安全令牌、也不会执行任何 HTTP 基本身份验证。如果服务器没有给予源站点信任(也就是说没有设置 Access-Control-Allow-Origin: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。

不加 crossorigin 属性时,获取资源不会使用 CORS 请求,保证其在 <canvas> 元素中使用时不会被污染。

如果指定非法值,会被当作指定了枚举关键字 anonymous 一样使用。

语法:<audio crossorigin="anonymous"></audio>

事件

  • audioprocess:一个 ScriptProcessorNode 的输入缓冲区已经准备开始处理。
  • canplay:不需要缓存全部的视频内容,直接开始播放。
  • canplaythrough:需要缓存全部的视频内容,才开始播放。
  • complete:OfflineAudioContext 渲染完成。
  • durationchange:duration 属性的值改变时触发。
  • emptied:媒体内容变为空。
  • ended:视频停止播放,因为 media 已经到达结束点。
  • loadeddata:media 中的首帧已经完成加载。
  • loadedmetadata:已加载元数据。
  • play:播放已开始。
  • pause:播放已暂停。
  • playing:由于缺乏数据而暂停或延迟后,播放准备开始。
  • progress:在浏览器加载资源时周期性触发。
  • ratechange:播放速率发生变化。
  • seeking:跳帧操作开始。
  • seeked:跳帧操作完成。
  • stalled:用户代理正在尝试获取媒体数据,但数据意外未出现。
  • suspend:媒体数据加载已暂停。
  • timeupdate:currentTime 属性指定的时间发生变化。
  • volumechange:音量发生变化。
  • waiting:由于暂时缺少数据,播放已停止。

示例

浏览器对 文件类型音频编码 的支持各有不同,你可以使用内嵌的 <source> 元素提供不同的播放源。浏览器会使用第一个它支持的播放源:

<audio controls>
  <source src="myAudio.mp3" type="audio/mpeg">
  <source src="myAudio.ogg" type="audio/ogg">
  <p>Your browser doesn't support HTML5 audio. Here is a <a href="myAudio.mp4">link to the audio</a> instead.</p>
</audio>
转载请注明出处或者链接地址:https://www.qianduange.cn//article/12679.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!