You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在howler.js中使用变量播放多个音频?

问题分析与解决方法

你的写法存在错误,和howler.js本身无关。

为什么原有简化代码失败?

你写的var sound = ["sound" + i]只是创建了一个包含字符串(比如"sound0")的数组,这个字符串和你之前定义的sound1、sound2这些Howl实例没有任何关联,自然调用不了play()方法。

正确的简化方式

首先把所有音频实例统一存到一个数组里,代替单独的变量:

// 用数组存储所有Howl实例
var sounds = [
  new Howl({src: ['sound01.mp3']}),
  new Howl({src: ['sound02.mp3']}),
  new Howl({src: ['sound03.mp3']})
];

然后在点击事件里,直接通过索引从数组中取出对应的实例并播放:

$musicbox.on('click', function(){
  var i = $(this).index();
  sounds[i].play();
});

补充:如果非要用变量名匹配(不推荐)

如果你坚持想用"sound"+i的方式获取之前的变量,只能在全局作用域下通过window["sound" + (i+1)]来取(注意你的元素索引从0开始,而变量名是sound1对应第一个元素,所以要+1),但这种写法不够规范,代码维护性差,还是推荐用数组的方式。

内容的提问来源于stack exchange,提问作者Mangoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:15:03