使用香草淡出音频 javascript
Fade out audio using vanilla javascript
如何使用原版 js 淡出音频元素(否 jquery)?我已经查看了该论坛上的许多其他问题,但它们似乎都过于复杂或使用 jquery。我在下面写了这段代码。但是,我收到以下错误:
“未捕获的 DOMException:无法在 'HTMLMediaElement' 上设置 'volume' 属性:提供的体积 (-7.52870e-16) 超出范围 [0, 1]。”
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();
});
假设 vol
当前的值为 0.005。您的代码当前设置的方式 if (vol > 0)
是 true
,因此您将减去 0.01,使 vol
的值为 -0.005。由于该值现在小于零,因此在尝试将音量设置为该级别时会出现错误。
解决方法是在测试 if(vol > 0)
之前 调用 vol -= 0.01
。这样,如果 vol
低于 0,您就不会尝试将音量设置为无效级别。
如何使用原版 js 淡出音频元素(否 jquery)?我已经查看了该论坛上的许多其他问题,但它们似乎都过于复杂或使用 jquery。我在下面写了这段代码。但是,我收到以下错误: “未捕获的 DOMException:无法在 'HTMLMediaElement' 上设置 'volume' 属性:提供的体积 (-7.52870e-16) 超出范围 [0, 1]。”
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();
});
假设 vol
当前的值为 0.005。您的代码当前设置的方式 if (vol > 0)
是 true
,因此您将减去 0.01,使 vol
的值为 -0.005。由于该值现在小于零,因此在尝试将音量设置为该级别时会出现错误。
解决方法是在测试 if(vol > 0)
之前 调用 vol -= 0.01
。这样,如果 vol
低于 0,您就不会尝试将音量设置为无效级别。