howler.js 更新音量

howler.js update volume of a sound

我正在与

合作

howler.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());
}

我已经尝试过使用 volume() functionvolume 属性。 None 似乎有效。

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

我错过了什么?此外,我注意到如果您多次单击 play,则会开始播放同一声音的多个实例。我不希望这样,在特定的 howl 实例上点击 play 应该始终适用于该实例。

如果您查看 howler.js 2.0’s docs for volume,它表明 volume 是一个函数,而不是可分配的 属性,并且您需要将新卷作为参数传递给设置音量。所以你需要做 sound.volume(value) 而不是 sound.volume = value.

sound = new Howl({
  src: 'http://www.hochmuth.com/mp3/Tchaikovsky_Rococo_Var_orch.mp3',
  loop: true,
  volume: 0.5
});

updateVolume = function(value) {
  console.log('before update volume:', sound.volume());
  sound.volume(value);
  console.log('after update volume:', sound.volume());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.0.0-beta13/howler.min.js"></script>


<button onclick="sound.play()">
  Play
</button>
<button onclick="updateVolume(0.15)">
  Change volume to 0.15
</button>

(为了演示目的,我切换了上面的音量值,所以听众不必担心当他们点击按钮时音乐会突然震耳欲聋。)