Uncaught DOMException: Failed to set the ‘volume‘ property on ‘HTMLMediaElement‘

博客内容讲述了在JavaScript中操作HTMLMediaElement的volume属性时,由于设置的音量值超过0到1的范围导致的DOMException错误。分析了错误原因并提供了解决方案,即确保音量值在0到1之间,以避免此类异常。通过修改音量滑动条的input事件处理函数,将音量值转换并限制在正确的范围内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误

未捕获的DOMException
未捕获的DOMException:未能在“HTMLMediaElement”上设置“volume”属性:提供的卷(66)超出了范围[0,1]。 在HTMLInputElement。<匿名>

在这里插入图片描述


原因分析

HTMLMediaElement.volume 属性可设置媒体播放时的音量
取值为 0 到 1 的双精度值。0 为静音,1 为音量最大时的值。
当取值不在【0,1】范围内就会报DOMException的错误。


解决方案

检查视频的音量设置,控制volume在【0,1】之间。


举例证明

错误示例如下:

var doms = {
  // 视频元素
  video: document.querySelector("video"),
  //音量元素
  volume: {
    // 滑动块
    range: document.querySelector("#volume input"),
    // 文本
    text: document.querySelector("#volume span"),
  }
  }
  

//给音量滑动条添加input事件
doms.volume.range.addEventListener("input", function () {

  //改变视频的音量
  doms.video.volume =  100 +  (this.value / 100).toFixed(2);
  
  //剩余代码略
  ...
})

此处的该视频音量:范围设置为100+,直接超出规定的【0,1】范围,势必会报错

报错如下:
在这里插入图片描述

解决方案如下:

设置在【0,1】之间的正确音量

//给音量滑动条添加input事件
doms.volume.range.addEventListener("input", function () {

  //改变视频的音量
  doms.video.volume = (this.value / 100).toFixed(2);
  
  //剩余代码
  ...
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值