我正在与
但似乎无法获得更新卷工作量的简单示例。这里有一些示例代码:
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() function
和volume
属性。似乎没有任何工作。JsFiddle:https://jsfiddle.net/umx2bdm8/
我想念什么?另外,我注意到,如果您多次单击
play
,则会开始播放同一声音的多个实例。我不希望这样,并且在特定play
实例上点击howl
应该始终可以与该实例一起使用。 最佳答案
如果查看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>
(出于演示目的,我将音量值切换到了上面,因此听众不必担心单击按钮时音乐是否会突然使它们失去防御感。)