音量超出范围
Posted
技术标签:
【中文标题】音量超出范围【英文标题】:Volume is outside the range 【发布时间】:2018-12-21 17:00:48 【问题描述】:我的控制台日志抛出以下错误:
未捕获的 DOMException:无法设置“音量”属性 'htmlMediaElement':提供的音量 (1.005) 超出范围 [0, 1]。
谁能向我解释如何解决这个问题?任何帮助表示赞赏!谢谢。
代码:
// Fade out/in functions for music player
function audio_fade_out()
var timer,
myAudio = document.getElementById("musicPlayer");
if (myAudio.volume > 0)
myAudio.volume -= 0.003;
timer = setTimeout(audio_fade_out,0);
console.log(myAudio.volume);
function audio_fade_in()
var timer,
myAudio = document.getElementById("musicPlayer");
if (myAudio.volume < $audio_volume)
myAudio.volume += 0.005;
timer = setTimeout(audio_fade_in,10);
console.log(myAudio.volume);
【问题讨论】:
您似乎已达到最大音量。设置一个条件以在该点停止计时器。 【参考方案1】:对于audio_fade_out()
,有可能低于0
。如果myAudio.volume
是0.001
,这通过了> 0
的测试,但你仍然从中减去0.003
。
在audio_fade_in()
,谁知道呢,因为你没有向我们展示$audio_volume
是什么。
按照您的方法,您要做的是将音量设置为Math.max(myAudioVolume - 0.003, 0)
,以钳制该值等于或高于0
。在audio_fade_in()
上做相反的事情...Math.min(myAudioVolume + 0.005, 1)
。
然而,您应该真正做的是使用 Web 音频 API 并增加 GainNode
的 gain
参数。这听起来会更流畅。
https://developer.mozilla.org/en-US/docs/Web/API/AudioParam/exponentialRampToValueAtTime
【讨论】:
很好的反馈。谢谢布拉德!以上是关于音量超出范围的主要内容,如果未能解决你的问题,请参考以下文章
分配对局部变量的引用,如果局部变量超出范围,它会超出范围吗?
PDO PHP - PDOException - 数值超出范围:1264 第 1 行的列“customer_id”的值超出范围