Web 应用 2D/3D 音频控制库 音频控件
myzbx 2024-12-28 14:19 9 浏览
howlerjs 是一个轻量级的 JavaScript 音频库,适用于在 Web 应用中集成音频功能,无论简单的背景音乐播放,复杂的音频、游戏,3D 音效管理,howler 都可以提供强大而灵活的音频控制能力,包括播放、暂停、快进、快退、调整播放速率、音量控制、淡入淡出效果和循环播放等。
安装使用:
import { Howl, Howler } from 'howler';
// 初始化
const sound = new Howl({
src: ['sound.webm', 'xxx.mp3']
});
// 播放
sound.play();
// 音量控制
Howler.volume(0.5);
示例:
基础配置:
src:定义要加载的音频轨道的源文件,可以是 URL 或 base64 数据。如果文件没有扩展名,需要使用 format 属性明确指定格式。
volume:设置特定音轨的音量,范围从 0.0 到 1.0。
html5:是否强制使用 HTML5 Audio,适用于大文件,以便不必等待整个文件下载和解码完成即可播放。
loop:是否无限循环播放。
preload:是否自动开始下载音频文件。如果使用 HTML5 Audio,可以设置为 'metadata' 预加载数据。
autoplay:是否自动开始播放。
mute:是否加载时静音音频。
sprite: 定义音频精灵。偏移量和持续时间以毫秒为单位定义。可选的第三个参数用于设置精灵是否循环。
rate:设置播放速率,范围从 0.5 到 4.0,1.0 为正常速度。
pool:定义非活动声音池的大小。停止或播放结束的声音会被标记为结束并准备清理,以提高性能。
format:howler 会自动检测文件格式,但在某些情况下(如 SoundCloud 流)可能需要明确指定格式。
xhr:使用 Web Audio 时,howler 使用 XHR 请求加载音频文件。如果需要发送自定义头部、设置 HTTP 方法或启用 withCredentials,可以使用此参数。
onload:当声音加载完成时触发。
onloaderror:当声音无法加载时触发。
onplayerror:当声音无法播放时触发。
onplay:当声音开始播放时触发。
onend:当声音播放结束时触发(如果是循环播放,则在每次循环结束时触发)。
onpause:当声音被暂停时触发。
onstop:当声音被停止时触发。
onmute:当声音被静音或取消静音时触发。
onvolume:当声音的音量改变时触发。
onrate:当声音的播放速率改变时触发。
onseek:当声音被快进或快退时触发。
onfade:当声音完成淡入或淡出时触发。
onunlock:当音频通过触摸/点击事件自动解锁时触发。
3D 音频配置:
orientation:设置音频源在 3D 笛卡尔坐标空间中指向的方向。根据声音的锥形属性,指向远离监听器的声音可能会变得安静或无声。数组中的三个值分别代表在 X、Y、Z 轴上的方向向量,默认值为 [1, 0, 0]。
stereo:设置音频源的立体声平移值,用于控制声音在左右声道之间的平衡。-1.0 表示完全在左侧,1.0 表示完全在右侧。
pos:设置音频源在 3D 空间中的位置,相对于全局监听器的位置。数组中的三个值分别代表在 X、Y、Z 轴上的位置。
pannerAttr:设置声音或声音组的 panner 节点属性。可以使用 pannerAttr 方法来设置所有可用的选项。
onstereo:当当前声音的立体声平移值改变时触发。
onpos:当当前声音的监听器位置改变时触发。
onorientation:当当前声音的监听器方向改变时触发。
功能和特性:
音频精灵:允许开发者将多个音频片段组合到一个文件中,这样可以减少 HTTP 请求的数量,提高加载效率。
空间音频:howler 支持立体声和 3D 音频效果,使得开发者可以创建具有空间感的音频体验。
全编解码器支持:howler 支持多种音频格式,包括但不限于 MP3、MPEG、OPUS、OGG、OGA、WAV、AAC、CAF、M4A、MP4、WEBA、WEBM、DOLBY 和 FLAC。
跨平台兼容性:howler 默认使用 Web Audio API,如果浏览器不支持,则回退到 HTML5 Audio。这种设计确保了它可以在所有主流浏览器和平台上运行。
自动缓存:howler 会自动缓存加载的音频文件,并在后续的调用中重用这些缓存,这样可以提高性能并减少带宽消耗。
模块化:howler 的模块化架构允许开发者只加载所需的部分,这样可以减少最终应用的体积。同时,开发者也可以根据需要扩展库,添加自定义功能。
使用场景:
游戏开发:在游戏开发中,howler 可以用来管理背景音乐、音效和角色语音。
多媒体应用:在需要播放音频的多媒体应用中,howler 提供了丰富的控制选项和良好的用户体验。
教育工具:在教育应用中,howler 可以用来创建互动式音频教程和语音反馈。
音乐播放器:howler 可以用来创建自定义的音乐播放器,支持多种音频格式和播放控制。
《前端资源推荐》收集各种前端组件 UI 框架、JS 插件工具、中后台系统模板、动画库、低代码、可视化资源、开源项目、学习资源、特效源码等,如有其他优秀资源,欢迎发消息投稿,感谢点赞、转发、关注!!!
GitHub:https://github.com/goldfire/howler.js
官方文档:https://howlerjs.com/
相关推荐
- SUS631化学成分特性及适用范围(sus316的材料成分)
-
sus631特性及适用范围:添加铝的沉淀硬化型钢种,用作弹簧、热圈及计器部件。sus631/17-7PH/S17700/0Cr17Ni7Al沉淀硬化型不锈钢日本SUS631(17-7PH国标0Cr17...
- 4年仅掉价不到3成!这辆45万的奥迪S5纯素车,值不值得买?
-
哈喽~大家好,检车家老司机又和你们见面啦!我是你们的老朋友建国,我曾是一枚修过7年车的汽车修理工,现在是一名专业的二手车检测技师,更是一枚事故车劝退师。欢迎收看本期二手车检测趣事,今天给大家带来的车型...
- 新旗舰什么样?7张图全方位预测三星Note4
-
夏天已经快结束了,这也就意味着今年上半年的重磅机型已经悉数发布完毕,我们先要做的就是过一段平淡的日子然后期待着下半年的重磅产品陆续登场。三星GALAXYNote4无疑是下半年最值得我们期待的机型之一,...
- 拍照为主兼顾视频,将来可能接单,索尼a7m3和松下s5怎么选?
-
最近有小伙伴问了我下面这么一个问题。想买一台全画幅微单,但是预算有限,看好了两款机型,他的问题是:拍照为主兼顾视频,将来可能接单,索尼a7m3和松下s5怎么选?这个问题,我就想到这个网友也是做过一些功...
- GolangWeb框架Iris项目实战-JWT和中间件(Middleware)的使用EP07
-
前文再续,上一回我们完成了用户的登录逻辑,将之前用户管理模块中添加的用户账号进行账号和密码的校验,过程中使用图形验证码强制进行人机交互,防止账号的密码被暴力破解。本回我们需要为登录成功的用户生成Tok...
- 对焦大提升!松下S5M2 3.0固件&S5M2X 2.0固件详细测试
-
前段时间,松下发布了最新的S5M2和S5M2X的固件,并且这是一个比较大的更新,对对焦性能、防抖性能有较大提升,还新增了录制代理文件以及预连拍功能。这都是超级实用的功能,松下不愧是固件大厂!自动对焦升...
- 三星Galaxy S5安卓5.0测试版曝光,总算好看点了
-
三星GalaxyS5安卓5.0测试版曝光,总算好看点了出处:IT之家原创(远洋)2014-10-3123:11:04评论IT之家报道,显然,三星正在将自家的TouchWiz用户界面适配谷歌最...
- 松下S5M2对焦变换功能讲解#松下相机
-
大家好,今天和大家分享松下相机一个非常好用的功能:对焦变换。这个功能通常用于近景的视频拍摄,比如像现在画面里出现的人偶、象棋,看到视频的对焦点非常平顺的依次从画面的上方移动到中间,再移动到靠下的位置。...
- 松下 S5M2的几个重要功能(拍照篇) 松下 S5M2的几个重要功能
-
赶在618结束之前,我来讲几个松下S5二代的重要功能,也许其中的某一项功能会成为你购买它的理由。·首先来讲一讲高分辨率模式,这是一个非常好用的功能。使用松下S52代的左边波轮,可以直接进入这个模式。进...
- 奥的斯电梯OTIS DCSS5-E门机自学习详细过程
-
奥的斯电梯DCSS5-E门机自学习详细过程1.将轿顶打检修2.插入TT时按“M”键,提示你按“3”键,按“3”3.关键一步,因为怕你误操作而更改门机运行曲线和重要参数,正常情况下你是看不到第三个菜单的...
- 玩转smardaten | 逻辑编排很难吗?看无代码平台操作
-
1、前言不知道各位小伙伴有没有使用过无代码软件平台的经历呢?有没有想过你可以通过简单的拖拽就能构建和部署强大的应用程序?简单地说,smardaten无代码系统使任何人都能够开发软件,无需高深的开发知...
- 关于编码的那些事 - URL 编码(url编码的作用)
-
作者:redmed背景Web项目中经常会遇到处理URL中Query的情况,来看下下面问题你有疑惑吗?项目中发现会用到qs、query-string、URLSearchParams、甚至q...
- 国服一周数据观察:新英雄千珏胜率不足50%
-
随着千珏的更新,5.20版本到现在已经有一周的时间了,这段时间我们的排位赛数据有什么变化呢?快来看下排位赛数据分析。选择率最高的英雄榜单与过去的变化不大,仍然是盲僧、薇恩和赵信荣登榜首。但这不代表这些...
- iPhone系列领跑消费者最喜爱拍摄设备名单
-
现在连GalaxyS5都被iPhone4s,iPhone4这类老机型压在后面,由此可见苹果的产品比起三星真是畅销太多了。国外著名图片分享网站Flickr,今天公布了2015年用户们最喜欢使...
- Galaxy S6图像处理性能不如iPhone6 Plus?
-
三星最近公布了旗舰机GalaxyS6,有许多人批评、褒奖,但更常拿来跟iPhone6比较(明明不同系统阿?),而这次又有报告指GalaxyS6的「图像处理」不如iPhone6Plus,究竟是...
- 一周热门
- 最近发表
-
- SUS631化学成分特性及适用范围(sus316的材料成分)
- 4年仅掉价不到3成!这辆45万的奥迪S5纯素车,值不值得买?
- 新旗舰什么样?7张图全方位预测三星Note4
- 拍照为主兼顾视频,将来可能接单,索尼a7m3和松下s5怎么选?
- GolangWeb框架Iris项目实战-JWT和中间件(Middleware)的使用EP07
- 对焦大提升!松下S5M2 3.0固件&S5M2X 2.0固件详细测试
- 三星Galaxy S5安卓5.0测试版曝光,总算好看点了
- 松下S5M2对焦变换功能讲解#松下相机
- 松下 S5M2的几个重要功能(拍照篇) 松下 S5M2的几个重要功能
- 奥的斯电梯OTIS DCSS5-E门机自学习详细过程
- 标签列表
-
- HTML 基础教程 (29)
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 中级教程 (30)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)