WebAPP开发——H5标签audio(属性和API事件)

hykeda2年前JS1301
  1. audio支持的格式


audio 定义音频 格式:mp3 wav ogg

mp3所有浏览器兼容

ogg safari不支持

wav 都支持



js 能帮助生成audio对象 new Audio(); 等同于HTML上面写上audio标签

chrom和Opera都不能直接播放 需要页面上元素交互

<button id='btn'>播放</button>
<script type="text/javascript">
    //console.log(new Audio());
    var myAudio = new Audio();
    myAudio.src = 'data/imooc.wav';
 
    btn.onclick = function(){
    myAudio.play();
};
</script>

2.audio标签属性

20200220104927991.png

autoplay自动播放 只有Chrome和Opera不会自动播放,和video有
区别,有了静音属性也不会自动播放
muted静音
loop循环播放
width/height属性在标签内设置不起作用 ,需要css样式中进行设置

3.audioAPI事件

20200220110246159.png

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
    <input type="button" id='ipt' name="" value='播放'>
    <input type="button" id='pauseNode' name="" value='暂停'>
    <div id='durationNode'></div>
    <div id='currentNode'></div>
</head>
<body>
<!-- audio 标签 currentTime -->
<script type="text/javascript">
//生成出一个音频对象
var myAudio = new Audio();
//音频地址
myAudio.src = 'data/imooc.mp3';
//音频播放按钮
ipt.onclick = function(){
myAudio.play();
};
//音频暂停按钮
pauseNode.onclick = function(){
myAudio.pause();
};
 
//返回音频的长度
myAudio.addEventListener('canplay',function(){
durationNode.innerHTML = myAudio.duration;
});
 
myAudio.currentTime = '20';
//音频的设置和返回
setInterval(function(){
currentNode.innerHTML = myAudio.currentTime;
},100);
 
//音量的控制
myAudio.volume = '0.5';
</script>
</body>
</html>

20200220110826627.png

currentSrc只能获取,不能设置


seeked seeking 在audio中触发频率相同

timeupdate 播放时触发的事件

volumechange 当音量改变的时候触发

requestFullscreen 全屏 必须使用audio标签 js生成的audio对象不支持

load 重新加载的函数 重新给个src也会重新加载

canplay 准备好的时候出发的事件


//ended
console.log(myAudio.ended)
 
myAudio.addEventListener('ended',function(){
console.log('音频播放结束');
console.log(myAudio.ended)
});
 
//loop 循环
myAudio.loop = true;
 
//playbackRate 设置倍速
myAudio.playbackRate = '15';
console.log(myAudio.playbackRate)
 
//timeupdate
myAudio.addEventListener('timeupdate',function(){
console.log('音频正在播放中...')
});
 
 
//seeked
myAudio.addEventListener('seeked',function(){
console.log('seeked');
sekNum++;
seekedNum.innerHTML = sekNum;
});
 
//seeking
myAudio.addEventListener('seeking',function(){
console.log('seeking');
sekingNum++;
seekingNum.innerHTML = sekingNum;
});
 
//volumechange
myAudio.addEventListener('volumechange',function(){
console.log('音频的声音改变了')
});
 
//全屏
btnScreen.onclick = function(){
myAudio.webkitRequestFullScreen();
};
 
loadBtn.onclick = function(){
myAudio.src='data/imooc.mp3';
//myAudio.load();
};


————————————————

原文链接:https://blog.csdn.net/weixin_39089928/article/details/104406124


标签: audiojs

相关文章

ES6导出、导入模块方式

ES6使用 export 和 import 来导出、导入模块 。export导出的,导入需要用{}var firstName = 'Michael';var lastName = &#...

生成随机图片

function getMockImagesURL() { let arr = [200, 250, 300, 350, 400, 450]; const width = arr[...

js 对象合并和数组合并

1、对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。let obj1 = {     name:...

介绍几款有用的图表插件

大家在开发一些系统的时候会用到很多统计的图表,我在做统计报表的时候用过挺多图表插件的,现在推荐大家几款优秀、稳定、可靠、大公司开发的图表体统。 1、Highcharts Highchart...

关于js方法的写法

在写js方法时,现在有很多种写法:写法1:最最常见的写法function test(params){     //内部 }写法2:变量形式,箭头函...

js获取键盘事件keyCode都是229原因

今天在操作空格键和enter键时出现键盘keyCode值都是229,导致特定的键盘事件没有触发。经过查询,原来是因为在中文输入法下,使用 keydown 事件时,绝大部分的键盘ASCII码值都是229...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。