介绍
howler.js是现代网络的音频库。它默认为Web Audio API,而向后兼容为HTML5 Audio。这使得在所有平台上使用JavaScript进行音频操作变得轻松可靠。
Github
https://github.com/goldfire/howler.js
功能特性
- 单个API满足所有音频需求
- 默认为Web Audio API,向后兼容为HTML5 Audio
- 处理跨环境的极端情况和错误
- 支持所有编解码器以全面支持跨浏览器
- 自动缓存以提高性能
- 单独,分组或全局控制声音
- 一次播放多种声音
- 简单的声音元素定义和播放
- 完全控制衰落,速率,搜寻,音量等
- 轻松添加3D空间声音或立体声声像
- 模块化-使用你想要的内容并易于扩展
- 没有外部依赖,只有纯JavaScript
- 压缩后7kb大小
浏览器支持情况
- Google Chrome 7.0+
- Internet Explorer 9.0+
- Firefox 4.0+
- Safari 5.1.4+
- Mobile Safari 6.0+ (after user input)
- Opera 12.0+
- Microsoft Edge
Demo
截图体验不佳,可以直接看demo
开始使用
- 安装
npm install howler | |
yarn add howler | |
bower install howler | |
//使用 | |
<script src="/path/to/howler.js"></script> | |
<script>var sound = new Howl({ | |
src: ['sound.webm', 'sound.mp3'] | |
}); | |
</script> | |
import {Howl, Howler} from 'howler'; | |
const {Howl, Howler} = require('howler'); |
范例
最基本播放mp3
var sound = new Howl({ | |
src: ['sound.mp3'] | |
}); | |
sound.play(); |
更多配置
var sound = new Howl({ | |
src: ['sound.webm', 'sound.mp3', 'sound.wav'], | |
autoplay: true, | |
loop: true, | |
volume: 0.5, | |
onend: function() { | |
console.log('Finished!'); | |
} | |
}); |
定义声音
var sound = new Howl({src: ['sounds.webm', 'sounds.mp3'],sprite: {blast: [0, 3000],laser: [4000, 1000],winner: [6000, 5000]} | |
}); | |
// Shoot the laser! | |
sound.play('laser'); |
事件监听
var sound = new Howl({ | |
src: ['sound.webm', 'sound.mp3'] | |
}); | |
// 首次通话后清除监听器。 | |
sound.once('load', function(){ | |
sound.play(); | |
}); | |
// 声音播放完毕时触发。 | |
sound.on('end', function(){ | |
console.log('Finished!'); | |
}); |
控制多种声音:
var sound = new Howl({ | |
src: ['sound.webm', 'sound.mp3'] | |
}); | |
// 播放返回可以传递的唯一声音ID | |
// | |
var id1 = sound.play(); | |
var id2 = sound.play(); | |
// Fade out the first sound and speed up the second. | |
sound.fade(1, 0, 1000, id1); | |
sound.rate(1.5, id2); |
ES6语法
import {Howl, Howler} from 'howler'; | |
// 设置新的 Howl. | |
const sound = new Howl({ | |
src: ['sound.webm', 'sound.mp3'] | |
}); | |
// 播放声音 | |
sound.play(); | |
// 改变全局音量 | |
Howler.volume(0.5); |
总结
howler.js让Web音频开发变得简单可靠,是一个值得推荐的音频库,如果你有这方面的需求,不妨尝试一下!