音频/视频
基础用法
属性
事件
audio元素和video元素
<audio id="audio" src="./成都.mp3"></audio>
<video id="video" src="./成都.mp4"></video>
一些属性
1、autoplay 自动播放
<audio src="成都.mp3" autoplay></audio>
2、controls 设置控件
<audio src="成都.mp3" autoplay controls></audio>
3、preload(none/metadata/auto) 预加载,规定是否在页面加载后载入视频 (与autoplay不能同时存在)
none 不需要加载数据
metadata 元数据 诸如时长、比特率、帧大小这样的原数据,而不是媒体内容需要加载的
auto 浏览器应当加载它认为适量的媒体内容
<audio src="成都.mp3" autoplay controls preload="auto"></audio>
4、loop 是否循环播放音/视频
<audio src="成都.mp3" autoplay controls loop preload="auto"></audio>
5、poster (video 独有)
当视频不可用时,使用一张图片替代,否则是空白 <video src="成都.mp4" poster="封面.jpg" controls></video>
多类型资源
<audio id="music">
<source src="成都.mp3" type="audio/mpeg">
<source src="成都.ogg" type='audio/ogg"'>
</audio>
(有时候不识别,为了保险起见,可以用哪个就拿哪个)
脚本化
var audio = document.getElementById('audio');
var audio = new Audio('./laojie.mp3');
var audio = document.createElement('video');
<script>
var audio = document.createElement('audio');
audio.setAttribute('controls','controls'); //增加属性
audio.setAttribute('autoplat','autoplay');
audio.loop = "loop";
audio.src = ""; //资源路径
document.body.appendChild(audio);
</script>
设置属性
controls/loop/preload/autoplay属性
audio.controls = true;
audio.loop = 'loop';
audio.preload = 'auto';
audio.autoplay = true;
currentSrc 资源链接,媒体数据的url地址
注意:window.onload
方法
1、play() 方法
2、pause() 方法
3、load()方法
重新加载视频/音频元素,用于在更改来源或其他设置后对音频/视频元素进行更新
音量 volume属性
表示播放音量,介于0(静音)~1(最大音量)之间,默认1。
将muted属性设置为true则会进入静音模式,设置为false则会恢复之前指定的音量继续播放。
超过范围会报错[0, 1]
<body>
<audio src="" controls></audio>
<button id="volum_add">+</button>
<button id="volum_sub">-</button>
<button id="play">播放</button>
<button id="pause">暂停</button>
<button id="reload">重播</button>
<script>
var audio = document.getElementsByTagName('audio')[0];
volum_add.onclick = function(){
if(audio.volume <=0.7){
audio.volume += 0.3;
}else{
audio.volume = 1;
}
}
volum_sub.onclick = function(){
if(audio.volume >=0.3){
audio.volume -= 0.3;
}else{
audio.volume = 0;
}
}
play.onclick = function(){
audio.play();
}
pause.onclick = function(){
audio.pause();
}
reload.onclick = function(){
audio.load();
audio.play();
}
</script>
播放速率 playbackRate
用于指定媒体播放的速度。该属性值为1.0表示正常速度,大于1则表示”快进”,0~1之间表示”慢放",负值表示回放。
每个浏览器实现的会有差别,具体看浏览器实现
<button id="add_rate">快进</button>
<button id="sub_rate">慢放</button>
add_rate.onclick = function(e){
if(audio.playbackRate < 2){
audio.playbackRate += 0.1;
}
}
sub_rate.onclick = function(e){
if(audio.playbackRate > 0.5){
audio.playbackRate -= 0.1;
}
}
currentTime/duration属性
currentTime 设置或返回音频/视频播放的当前位置
duration 返回当前音频/视频的时长(window.onload)
单位 秒
played/buffered/seekable
played属性返回已经播放(看过)的时间段,buffered属性返回当前已经缓冲的时间段,seekable属性则返回用户可以跳转的时间段。这三个属性都是TimeRanges对象,每个对象都有一个length属性以及start()和end()方法,length属性表示当前的一个时间段,start()与end()分别返回当前时间段的起始时间点和结束时间点(单位是秒,起始参数是0)
下面代码确定当前缓存内容的百分比:
paused/seeking/ended (都返回布尔值)
这三个属性用来查询媒体播放状态,paused为true表示播放器暂停。seeking为true表示播放器正在调到一个新的播放点,如果播放器播放完媒体并且停下来,则ended属性为true。
作为了解
play.onclick = function(){
if(audio.paused){
audio.play();
play.innerText = '暂停'
}else{
audio.pause();
play.innerText = '播放'
}
} //播放、暂停一体
canPlayType()方法 (看浏览器是否支持播放当前文件)