HTML5 多媒体播放【3】
video元素和audio元素的方法
- play()方法:使用该方法来播放媒体,自动将元素的paused属性值设置为false。
- pause()方法:使用该方法来暂停播放,自动将元素的paused属性值设置为true。
- load()方法:使用该方法来重新载入媒体进行播放,自动将元素的playbackRate属性值变为defaultPlaybackRate属性的值,自动将元素的error的值变为null。
- canPlayType()方法:使用该方法来测试浏览器是否支持指定的媒体类型,该方法定义如下:
var support = mediaElement.canPlayType(type);
mediaElement表示页面上的video或audio元素。该方法使用一个参数type,该参数的指定方法与source元素的type属性相同,都用播放文件的MIME类型来指定,可以在指定的字符串中加上表示媒体编码格式的codes参数。该方法返回三个可能的值:
- 空字符串:表示浏览器不支持此种媒体类型。
- maybe:表示浏览器可能支持此种媒体类型。
- probably:表示浏览器确定支持此种媒体类型。
媒体播放示例如下:
$(function() {
$("video").bind("ended", function(event) {
alert("播放结束。");
}).bind("error", function(event) {
swithc(event.target.code) {
case MediaError.MEDIA_ERROR_ABORTED:
alert("视频的下载过程被终止。");
break;
case MediaError.MEDIA_ERROR_NETWORK:
alert("网络发生故障,视频的下载过程被终止。");
break;
case MediaError.MEDIA_ERROR_DECODE:
alert("解码失败。");
break;
case MediaError.MEDIA_ERROR_SRC_NOT_SUPPORTED:
alert("不支持播放的视频格式。");
break;
default:
alert("发生未知错误。");
}
});
$("#playBtn").click(function(event) { $("video")[0].play(); });
$("#pauseBtn").click(function(event) { $("video")[0].pause(); });
});
示例页面的HTML代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>媒体播放示例</title>
<script type="text/javascript" src="../js/jquery-1.6.4.js"></script>
<script type="text/javascript" src="../js/media.js"></script>
</head>
<body>
<figure>
<figcaption>媒体播放</figcaption>
<video src="test.ogv"></video>
</figure>
<button type="button" id="playBtn">播放</button>
<button type="button" id="pauseBtn">暂停</button>
</body>
</html>
video元素和audio元素的事件
- loadstart事件:浏览器开始在网上寻找媒体数据。
- progress事件:浏览器正在获取媒体数据。
- suspend事件:浏览器暂停获取媒体数据,但是下载过程并没有正常结束。
- abort事件:浏览器在下载完全部媒体数据之前终止获取媒体数据,但是并不是由错误引起的。
- error事件:获取媒体数据过程中出错。
- emptied事件:video元素或audio元素所在网络突然变未初始化状态。(可能引起的原因有:1、载入媒体过程中突然发生了一个致使错误;2、在浏览器正在选择支持的播放格式时,又调用了load方法重新载入媒体。)
- stalled事件:浏览尝试获取媒体数据失败。
- play事件:即将开始播放,当执行了play()方法时触发,或数据下载后元素被设置为autoplay(自动播放属性)。
- pause事件:播放暂停,当执行了pause()方法时触发。
- loadedmetadata事件:浏览器获取完毕媒体的时间长和字节数。
- loadeddata事件:浏览器已加载完毕当前播放位置的媒体数据,准备播放。
- waiting事件:播放过程由于得不到下一帧而暂停播放(例如下一帧尚未加载完毕),但很快就能够得到下一帧。
- playing事件:正在播放。
- canplay事件:浏览器能播放媒体,但估计以当前播放速率不能直接将媒体播放完毕,播放期间需要缓冲。
- canplaythrough事件:浏览器能够播放媒体,而且以当前播放速率能够将媒体播放完毕,不再需要进行缓冲。
- seeking事件:seeking属性变为true,浏览器正在请求数据。
- seeked事件:seeking属性变为false,浏览器停止请求数据。
- timeupdate事件:当前播放位置被改变,可能是播放过程中的自然改变,也可能是被人为地改变,或由于播放不能连续而发生的跳变。
- ended事件:播放结束后停止播放。
- ratechange事件:defautplaybackRate属性(默认播放速率)或playbackRate属性(当前播放速率)被改变。
- durationchange事件:播放时长被改变。
- volumechange事件:volume属性(音量)被改变或muted属性(静音状态)被改变。