Для audio_fade_out()
возможно получить значение ниже 0
.Если myAudio.volume
равно 0.001
, это проходит тест на > 0
, и все же вы все равно вычитаете 0.003
из него.
В audio_fade_in()
, кто знает, потому что вы не показали нам что-либо$audio_volume
is.
Следуя вашему методу, вы должны установить громкость на Math.max(myAudioVolume - 0.003, 0)
, чтобы зафиксировать любое значение на уровне или выше 0
.Сделайте обратное для audio_fade_in()
... Math.min(myAudioVolume + 0.005, 1)
.
Что вы должны действительно сделать, однако использовать API-интерфейс Web Audio и увеличить значение параметра gain
для GainNode
,Это будет звучать намного плавнее.
https://developer.mozilla.org/en-US/docs/Web/API/AudioParam/exponentialRampToValueAtTime