JavaScript通过元素DOM接口控制媒体,需先获取元素并监听loadedmetadata事件确保readyState≥2再操作;常用方法包括play()、pause()、load(),属性含currentTime、volume、paused等;须遵守自动播放策略,静音视频可自动播放,有声媒体需用户交互后调用play()。
JavaScript 通过 和 元素的 DOM 接口控制媒体播放,核心是获取元素引用后调用其方法、监听事件、读写属性。
先用 document.querySelector 或 getElementById 获取元素,再确认是否已加载元数据(如时长、尺寸),避免调用方法时报错:
video.readyState 为 HTMLMediaElement.HAVE_METADATA(2)或更高值时,才能安全调用 play()、读取 duration
loadedmetadata 事件,而非轮询 readyState
');直接操作播放行为和状态:
play() 启动播放(可能返回 Promise,需处理拒绝,例如用户未交互导致被浏览器阻止)pause() 暂停播放load() 重载资源(清空缓冲、重置状态)currentTime 读写当前播放位置(秒,可设为小数)volume 音量(0.0–1.0),muted 控制静音paused(布尔值)、ended、seeking 等只读属性用于判断状态媒体生命周期中多个事件可用于反馈与干预:
play / pause:用户主动操作后触发timeupdate:播放过程中高频触发(通常每 250ms 左右),适合更新进度条seeked:拖动完成且定位成功后触发(区别于 seeking,后者表示正在跳转)ended:自然播放完毕时触发error:加载失败或解码出错时触发,可通过 video.error.code 判断错误类型现代浏览器普遍限制无用户手势(如 click、touchstart)触发的音频/视频自动播放:
video 或 audio 必须在用户交互后首次调用 play()
muted=true)通常允许自动播放play(),并用 .catch(e => console.warn('播放被阻止:', e)) 处理拒绝playsinline 属性才能内联播放