将音频对象分配给变量等于函数

时间:2017-01-22 04:42:43

标签: javascript audio html5-audio

我正在为我的游戏创建声音库,我正努力让它尽可能干净灵活。我的最终目标是能够定义一个变量(如下面的代码所示)并以这种方式调用sound1.play()sound1.mute()等,就像音频对象一样。我该怎么做呢?我的想法是,如果我将变量名称传递给函数(例如,sound1)并将其分配给音频对象,那么理论上它就可以工作。

var sound1 = new brazen({
  source:[
    ['audio/hit1.mp3'], // mp3
  ],
})

虽然,我尝试过,传递变量名称,但我仍然无法通过sound1.play()调用它。

这项工作

this.newSound = new Audio(soundName); // sound1.newSound is now an audio object
this.newSound.play(); // sound1.newSound.play() plays the sound

我想要什么

this = new Audio(soundName); // sound1 is now an audio object
this.play(); // sound1.play() plays the sound

如何实现目标?显然,“我想要的东西”不起作用,因为您无法将音频位分配给此。我想为声明为“new brazen()”

的任何变量动态实现这一点

理想情况下,只有javascript解决方案,因为我希望这个库是独立的,但如果它是唯一的解决方案,我会接受Jquery。

1 个答案:

答案 0 :(得分:0)

找到解决方案

我之前没有尝试过这种感觉很傻,但下面给出了我想要的结果。这很愚蠢。

s = new Audio(soundName); // sound1 is now an audio object
return s; // Var sound1 = audio object and assumes properties of HTML audio object, including .play();