使用香草javascript淡出音频
如何使用vanilla js(无jquery)淡出音频元素?我看过这个论坛上的许多其他问题,但它们似乎都过于复杂或使用jquery。我已经在下面编写了这段代码。但是,我得到以下错误: 未捕获的DomeException:未能在“HTMLMediaElement”上设置“volume”属性:提供的卷(-7.52870e-16)超出范围[0,1]使用香草javascript淡出音频,javascript,html5-audio,pannellum,Javascript,Html5 Audio,Pannellum,如何使用vanilla js(无jquery)淡出音频元素?我看过这个论坛上的许多其他问题,但它们似乎都过于复杂或使用jquery。我已经在下面编写了这段代码。但是,我得到以下错误: 未捕获的DomeException:未能在“HTMLMediaElement”上设置“volume”属性:提供的卷(-7.52870e-16)超出范围[0,1] 假设vol当前的值为0.005。当前设置代码的方式,如果(vol>0)为true,那么您将减去0.01,得到vol的值-0.005。由于该值现在小于零,因
假设
vol
当前的值为0.005。当前设置代码的方式,如果(vol>0)
为true
,那么您将减去0.01,得到vol
的值-0.005。由于该值现在小于零,因此在尝试将卷设置为该级别时将出现错误
修复方法是在测试
if(vol>0)
之前调用vol-=0.01
。这样,如果vol
降至0以下,您就不会试图将音量设置为无效级别。200秒(-0.01/2秒)超过3分钟,您是否至少等待了半分钟才发生了什么事情?谢谢,我已经做了更改,但是,我已经更新了帖子,因为现在我收到一条错误消息:myscript.js:669 Uncaught DomeException:未能在“HTMLMediaElement”上设置“volume”属性:提供的卷(-7.52870e-16)超出范围[0,1]。请在测试if(vol>0)
之前尝试调用vol-=0.01
。这样,如果vol
降至0以下,您就不会试图将卷设置为无效级别。谢谢!它工作正常,不会抛出错误消息。但我不明白为什么它会起作用,我认为“vol-=0.01”需要在测试之后。请参阅我的答案以了解为什么它会起作用。感谢您的澄清!
viewer.on('mouseup', function(event) {
var mouseDownSound = document.getElementById("mouseDownSound");
mouseDownSound.volume = 1;
var vol = mouseDownSound.volume;
function fadeOut() {
setInterval(
function() {
if (vol > 0) {
vol -= 0.01;
mouseDownSound.volume = vol;
}
else {
clearInterval(fadeOut);
}
}, 2);
}
fadeOut();
});