HTML5——多媒体标签<audio>和<video>

audio、video标签

■ 定义声音播放器,比如音乐和其他音频流,支持MP3、WAV、Ogg三种格式
■ 定义视频播放器,比如视频片段或其他视频流,支持MP4、WebM、Ogg三种格式

1.1 标签属性

属性名说明
src设置多媒体文件的路径
controls设置是否使用播放控件 controls 使用 没写就不显示
autoplay如果设置为autoplay,表示音频和视频加载完成后会自动播放,默认不设置,配合muted使用
loop如果设置为loop,表示音频和视频播放完成之后会再次重复播放,默认不设置设置
muted如果设置为muted,表示音频输出为静音
preload1.auto 表示预加载音频和视频 2.metadata 表示预加载音频和视频的元数据,如时间、大小、第一帧等 3.none 表示不执行预加载
poster只对有效,设置视频加载完成播放前显示的图片,属性值为图片URL
width只对有效,设置视频宽度
height只对有效,设置视频高度

1.2 HTMLAudioElement和HTMLVideoElement 支持的方法

方法名说明
play()播放
pause()暂停
load()重新加载
canPlayType()判断支持的type类型,属性值可以是MIME字符串、codes属性,也可以是MIME字符串并带codes属性。他的返回值有以下3种:probably,表示浏览器支持;maybe,表示浏览器可能支持;空字符串,表示浏览器不支持
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <audio id="audio1" controls='controls'>
        <source src="/audio/snow.mp3" type="audio/mp3">
        当前浏览器不支持audio
    </audio>
    <button onclick="playMusic()">播放</button>
    <button onclick="pauseMusic()">暂停</button>
    <button onclick="loadMusic()">重新加载</button>
    <button onclick="showCanPlay()">显示支持的音频格式</button>
    <p id="text"></p>
</body>
<script>
    var player = document.getElementById('audio1');
    function playMusic() {
        player.play();
    }
    function pauseMusic() {
        player.pause();
    }
    function loadMusic() {
        player.load();
    }
    function showCanPlay() {
        var str = player.canPlayType('audio/mp3') + 'MP3格式';
        document.getElementById('text').innerHTML = str;
    }
    
</script>

</html>

在这里插入图片描述

了解当前媒体的状态

■ 状态错误

属性名说明
error正常返回null,异常返回MediaError对象
MediaError.codeMEDIA_ERR_ABORTED(数值1):用户终止 MEDIA_ERR_NETWORK(数值2):网络错误 MEDIA_ERR_DECODE(数值3):解码错误 MEDIA_ERR_SRC_NOT_SUPPORTED(数值4):URL无效

■ 网络状态

属性名说明
currentSrc返回当前资源的URL
src返回或设置当前资源的URL
networkState返回当前音频和视频的网络状态分别为 NETWORK_EMPTY(数值0):处于初始状态;NETWORK_IDLE(数值1):处于空闲状态,还未建立网络连接;NETWORK_LOADING(数值2):正在加载音频和视频;NETWORK_NO_SOURCE(数值3):没有找到资源
preload设置或返回preload属性值

■ 准备状态

属性名说明
readyStateHAVE_NOTHING(数值0):还未获取任何数据; HAVE_METADATA(数值1):已获取音频和视频的元数据,还未获取媒体数据,还不能播放 HAVE_CURRENT_DATA(数值2):已获取当前位置的媒体数据,还未获取下一位置的媒体数据,或者当前位置已经是最后了 HAVE_FUTRUE_DATA(数值3):既获取了当前数据,也获取了下一位置的数据 HAVE_ENOUGH_DATA(数值4):已经获取了足够多位置的媒体数据,播放器可以顺利的向后播放
seeking返回音频或视频是否定位到指定的时间点

■ 播放状态

属性名说明
currentTime返回或设置当前播放的音频和视频所在的时间点,单位为秒
startTime返回音频和视频开始的时间
duration返回当前音频和视频的长度,单位为秒,如果未设置,则返回NaN
defaultPlaybackRate设置或返回音频和视频的默认播放速度
playbackRate设置或返回音频和视频的的当前播放速度
ended返回是否结束
autoPlay返回或设置是否在加载完成后随机播放音频和视频
loop返回或设置是否循环播放
controls返回或设置是否有默认控制条
volume返回或设置音量大小
meted返回或设置静音,true表示静音,false表示不静音
bufferd返回TimeRanges区域对象,通过该对象可以获取浏览器已经缓存的媒体数据。缓冲范围指的是已缓冲音频和视频的时间范围,如果用户在音频和视频中跳跃播放,会得到多个缓冲范围
seekable返回TimeRanges区域对象,用于获取音频和视频可定位的时间段
paused返回是否暂停,true或false
played返回已经播放的TimeRanges区域对象
TimeRanges.length区域对象的段数
TimeRanges.start(index)返回指定index段的开始时间
TimeRanges.end(index)返回指定index段的结束时间

1.3 audio和video的事件

事件名说明
onabort在还未下载完媒体数据而被中断时触发
oncanplay在文件就绪可以开始播放时触发,在播放期间可能需要缓冲
oncanplaythrough当文件就绪可以开始播放时触发,在播放期间不需要缓冲
ondurationchange当音频和视频的长度发生改变时触发
onemptied当发生故障或文件不可用时触发,如网络错误、加载错误等
onended当视频和音频播放时结束时触发
onerror当文件加载期间发生错误时触发
onloadeddata当音频和视频媒体数据加载完成时触发
onloadedmatadata当视频和音频的元数据加载完成时触发
onloadstart当视频和音频开始加载时触发
onpause当视频和音频暂停时触发
onplay当视频和音频播放时触发
onplaying当视频和音频正在播放时触发
onprogress当视频和音频正在加载时触发
onratechange当播放速率发生改变时触发
onreadystatechange当readystate属性值发生改变时触发
onseeked当成功定位到视频和音频的指定位置时触且seeking属性值设置为false时触发
onseeking当seeking元素设置为true时触发
onstalled当浏览器不论何种原因未能取回音频和视频媒体数据时触发
onsuspend当视频和音频媒体数据完全加载之前不论何种原因终止取回媒体数据时触发
ontimeupdate当播放位置发生改变时触发
onvolumechange当音量发生改变时触发
onwaiting当视频和音频由于无后面内容正在缓冲而被暂停时触发
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <audio id="audio3" src="/audio/snow.mp3" controls="controls"></audio>
    <p id="text"></p>
</body>
<script>
    var player = document.getElementById('audio3');
    var detail = document.getElementById('text');
    // 播放的同时刷新进度条
    // 事件 当播放位置发生改变时触发 ontimeupdate
    player.ontimeupdate = function() {
        detail.innerHTML = parseInt(player.currentTime) + '秒/' + parseInt(player.duration) + '秒/';
    }
</script>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值