使用香草javascript淡出音频

使用香草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。由于该值现在小于零,因

如何使用vanilla js(无jquery)淡出音频元素?我看过这个论坛上的许多其他问题,但它们似乎都过于复杂或使用jquery。我已经在下面编写了这段代码。但是,我得到以下错误: 未捕获的DomeException:未能在“HTMLMediaElement”上设置“volume”属性:提供的卷(-7.52870e-16)超出范围[0,1]


假设
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();

    });