howler.js 更新声音的音量

Raj*_*jat 5 javascript audio howler.js

我正在与

嚎叫者.js 2.0

但似乎无法获得更新卷工作的简单示例。这里有一些示例代码:

window.sound = new Howl({
 src:'http://example.com/assets/audio/background.mp3',
  loop: true,
  volume: 0.15
});

window.updateVolume = function(value) {
  alert('before update volume:', window.sound.volume());
  sound.volume = value;
  alert('after update volume:', window.sound.volume());
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用属性volume() function和仅volume使用属性。似乎没有一个起作用。

JsFiddle:https ://jsfiddle.net/umx2bdm8/

我缺少什么?另外,我注意到,如果您单击play多次,则会开始播放同一声音的多个实例。我不希望这样,并且点击play特定howl实例应该始终与该实例一起使用。

Ror*_*ane 8

如果您查看howler.js 2.0\xe2\x80\x99s 文档中的volume,它表明这volume是一个函数,而不是可分配的属性,并且您需要传入新卷作为参数来设置卷。所以你需要做sound.volume(value)而不是sound.volume = value.

\n

\r\n
\r\n
sound = new Howl({\n  src: \'http://www.hochmuth.com/mp3/Tchaikovsky_Rococo_Var_orch.mp3\',\n  loop: true,\n  volume: 0.5\n});\n\nupdateVolume = function(value) {\n  console.log(\'before update volume:\', sound.volume());\n  sound.volume(value);\n  console.log(\'after update volume:\', sound.volume());\n}
Run Code Online (Sandbox Code Playgroud)\r\n
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.0.0-beta13/howler.min.js"></script>\n\n\n<button onclick="sound.play()">\n  Play\n</button>\n<button onclick="updateVolume(0.15)">\n  Change volume to 0.15\n</button>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

(我出于演示目的切换了上面的音量值,因此听众不必担心点击按钮时音乐是否会突然震耳欲聋。)

\n