HTML Video/Audio DOM 网页上播放影片

应用于网页上播放影片的介面控制。将影片 Video DOM 插入网页及用来网页上播放影片或影音串流。从 HTML5 新增的 <video> 标籤后,可以在网页上直接播放影片格式更容易,且当前常用的浏览器上都可以正常播放,反而需要设置伺服器的 .mp4, .vtt MIME 类型约定例如需要在 IIS 或者 ApachePlesk 服务器系统管理中新增配置才可读取其档案属性。

影片档案上传至合适播放的伺服器

例如 YouTube、Vimeo 等,获取影片的嵌入码、可以让将影片嵌入到网页上。还可以在影片播放器上加入额外的功能,例如调整音量、设置字幕等,以便根据喜好自订影片播放器。

应用于网页上直接播放影片的 Video 影片或是 Audio 物件模型 (Document Object Model) 介面时,需要考量网站流量的因素例如媒体档案的大小和格式,建议选择合适的档案大小和格式,过大或不支援的档案可能会导致加载速度慢或无法播放的问题、预加载和缓冲可以提高媒体播放的流畅度,但也会消耗更多的流量和资源。


MP4 格式可以储存视讯、音讯等资讯。採用 M4V 基于 MPEG-4 标准的影片格式包含 FairPlay DRM 通常在 iTunes Store 视讯格式、防止未经授权的复制和分发影片内容保护版权所有者的权益,确保影片的内容不被非法传播。而当前播放器通常能够支持这两种格式,但在 M4V 文件时可能需要考虑到 Apple 公司特定限制。虽然档案比较小亦需要网站空问的属性支持。

开放的 M4V 影片格式标准 FairPlay DRM 多重工作流程是 Apple 公司 AES-128 CBC 加密保护影片媒体内容的版权而採取的措施,防止未经授权的复制、传播和非法使用数字媒体内容、某些方面限制用户的自由、但也确保版权所有者的受保护的内容。例如影片授权服务核准要求,就会发出授权以传送给用户端,并将它用来解密和播放所指定内容。


Method 方法 / Properties 属性 / Event 事件


Video/Audio Methods 方法

控制 Video/Audio 播放、暂停,附加出现的影片字幕轨道。

Method 方法Description 描述
load()加载重新加载媒体元素
play()播放开始播放媒体
pause()暂停暂停正在播放的媒体
canPlayType()可以播放类型检查浏览器是否可以播放指定的媒体类型
addTextTrack()添加字幕轨道向媒体添加新的 Text Track 字幕轨道



Video/Audio Properties 属性

通过 JavaScript 来完成媒体播放控制及读取影片当前资讯。

Property 属性Description 描述
audioTracks音频曲目返回表示可用音轨的 AudioTrackList 对象
autoplay自动播放设置或返回媒体,是否应在加载后立即开始播放 {vid.autoplay = true;}
buffered缓冲返回表示媒体的缓冲部分的 TimeRanges 对象
controller控制器返回表示媒体当前媒体控制器的 MediaController 对象
controls控件设置或返回媒体是否应显示控件(如播放/暂停等)
crossOrigin跨越原点设置或返回媒体的 CORS 设置
currentSrc当前来源返回当前媒体的 URL
currentTime当前时间设置或返回媒体中的当前播放位置(以秒 Seconds 为单位)
defaultMuted默认静音设置或返回媒体是否应默认静音 {vid.defaultMuted = true}
defaultPlaybackRate默认播放速率设置或返回媒体播放的默认速度 {vid.defaultPlaybackRate = 0.5}
duration持续时间返回当前媒体的长度(以秒为单位)
ended结束返回媒体的播放是否已结束
loop循环设置或返回完成后媒体是否循环新开始 {vid.loop = true}
mediaGroup媒体集团设置或返回媒体所属的组(用于链接多个媒体元素)
muted静音设置或返回媒体是否静音 {video.muted = (video.muted) ? !1 : !0;}
networkState网络状态返回媒体的当前 Network State 网络状态
paused暂停返回媒体是否暂停
playbackRate回放速率设置或返回媒体播放的速度
played已经播放返回表示媒体播放部分的 TimeRanges 对象
preload预加载设置或返回页面加载时是否应加载媒体
readyState准备状态返回媒体的当前就绪状态
seekable可搜索返回表示媒体的可搜索部分的 TimeRanges 对象
seeking寻求返回用户当前是否在媒体中寻找
src来源设置或返回媒体元素的当前 Source/src 来源
startDate开始时间日期返回表示当前时间偏移量的 Date 时间日期对象
textTracks文字追踪返回表示可用文本轨道的 TextTrackList 对象 {vid.textTracks.length}
videoTracks影片轨道返回表示可用影片轨道的 VideoTrackList 对象
volume音量设置或返回媒体的音量



Video/Audio Events 事件

Event 事件Description 描述
abort中止媒体加载中止时触发
canplay可以播放当浏览器开始播放媒体时触发
canplaythrough可以通过播放当浏览器可以在不停止缓冲的情况下播放媒体时触发
durationchange时间变化媒体持续时间改变时触发
emptied清空当前播放列表为空时触发
ended播放结束当前播放列表结束时触发
error错误返回表示媒体错误状态的 MediaError 对象 {vid.error.code}
loadeddata加载数据当浏览器加载媒体的当前帧时触发
loadedmetadata加载元数据当浏览器加载媒体的元数据时触发
loadstart加载启动浏览器开始查找媒体时触发
pause暂停媒体暂停时触发
play播放媒体启动或不再暂停时触发
playing播放在暂停或停止 Buffering 缓冲后播放媒体时触发
progress进展当浏览器正在下载媒体时触发
ratechange变化率当媒体的播放速度改变时触发
seeked寻找当用户完成 Moving/Skipping 移动影片中的新位置时触发
seeking寻求当用户开始移动/跳到媒体中的新位置时触发
stalled停滞浏览器尝试获取媒体数据时触发,但数据不可用
suspend中止/暂停当浏览器有意不获取媒体数据时触发
timeupdate时间更新当前媒体播放位置发生变化时触发
volumechange音量变化媒体音量改变时触发
waiting等待影片停止时触发,因为它需要缓冲下一帧


TimeRanges

返回无符号长整数的数字,所代影片的时间范围由影片时间范围对象。

TimeRanges.length
var vid = document.GetElementById("video");
var buf = vid.buffered;
var numRanges = buf.length;
if (buf.length == 1) {
  // 只有一个范围
  if (buf.start(0) == 0 && buf.end(0) == vid.duration) {
    // 一个范围从开始和结束开始,在影片结束时,整个事情都会被加载。
  }
}

可以使用元素的属性 seekable 来决定媒体目前能查找的范围。它返回一个 TimeRanges 时间对象。

mediaElement.seekable.start(); // 返回开始时间
mediaElement.seekable.end(); // 返回结束时间


MediaError 错误处理程序、输出错误消息

创建 <video> 元素,为其创建错误处理程序,将该元素的 src 属性设置为要显示在该元素中的影片资源。

var vid = document.createElement("video");
vid.onerror = function() {console.log("Error with media: " + vid.error.code);}
vid.src="//www.zhangleiboke.com/3D-ANIMATION.html";

例如在 iOS 系统下媒体格式不正确则出现 error.code = 4

  • 1 MEDIA_ERR_ABORTED 相关资源的获取被用户请求中止。
  • 2 MEDIA_ERR_NETWORK 发生了某种网络错误,导致媒体无法成功获取,尽管之前已经可用。
  • 3 MEDIA_ERR_DECODE 尽管以前被确定为可用,但尝试解码媒体资源时发生错误,导致错误。
  • 4 MEDIA_ERR_SRC_NOT_SUPPORTED 关联的资源或媒体提供程序对象(如 MediaStream)已被发现不适合。