音量超出范围

时间:2018-12-21 17:00:48

标签: javascript audio html5-audio

我的控制台日志抛出以下错误:

  

未捕获到的DOMException:无法在上设置'volume'属性   '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 个答案:

答案 0 :(得分:3)

对于.divButton { background-color: cyan; border: none; color: white; padding: 12px 30px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; } ,可能会低于audio_fade_out()。如果0myAudio.volume,则通过了0.001的测试,但是您仍然从中减去> 0

0.003中,谁知道是因为您没有向我们展示audio_fade_in()是什么。

按照您的方法,将要做的是将音量设置为$audio_volume,以钳制值等于或大于Math.max(myAudioVolume - 0.003, 0)的任何值。对0 ... audio_fade_in()求逆。

您实际上应该做的是使用Web Audio API并增加Math.min(myAudioVolume + 0.005, 1)的{​​{1}}参数。听起来会更顺畅。

https://developer.mozilla.org/en-US/docs/Web/API/AudioParam/exponentialRampToValueAtTime