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

hykeda3年前JS1966
  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

相关文章

介绍几款有用的图表插件

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

20个js工具函数助力高效开发

前言日常开发中,面对各种不同的需求,我们经常会用到以前开发过的一些工具函数,把这些工具函数收集起来,将大大提高我们的开发效率。1、校验数据类型export const typeOf...

ES6导出、导入模块方式

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

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

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

在使用do.js进行js管理时遇到的问题

在使用do.js进行js管理时遇到的问题

Do.js 是一个轻量级的 JavaScript 模块加载器和 DOM 就绪事件处理器,它主要用于管理 JavaScript 和 CSS 文件的异步加载、处理模块依赖关系以及执行 DOM 就绪后的回调...

天地图用服务端去调用接口提示403错误,解决办法

天地图用服务端去调用接口提示403错误,这里很有可能就是跨域问题。可以使用天地图官方的处理跨域的地址去处理:https://api.tianditu.gov.cn/apiserver/ajaxprox...

发表评论    

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