kind="descriptions"不能用于音轨,因其专指为视觉缺失者提供文本描述的webvtt轨道,非音频流;html无原生音轨track类型,多音轨切换需用audiotracks api(仅mse有效)或hls/dash方案。

track 标签的 kind 属性不支持 "descriptions" 作为音轨(audio track)用途。
为什么 kind="descriptions" 不能用于音轨
kind 的合法值是预定义的枚举,"descriptions" 专指「描述性文本轨道」,用于为视频中视觉信息缺失的场景提供语音描述(如盲人辅助),它必须配合 srclang、label 使用,且内容是 <track kind="descriptions"></track> 指向的 WebVTT 文件,里面写的是时间轴+描述文本,不是音频流。
音轨(audio track)在 HTML 中根本**没有对应的 track 类型**——浏览器不通过 track 加载或切换音频轨道,那是 <audio></audio> 自身的 src、audiotracks API 或媒体源扩展(MSE)的事。
想实现多音轨切换,该用什么
HTML 原生不提供声明式多音轨支持。可行路径只有两条:
- 用 JavaScript 操作
HTMLMediaElement.audioTracks——但该 API **仅对 MSE 加载的媒体(如通过MediaSource)有效**,对普通src音频/视频无效; - 实际项目中普遍采用封装方案:用
<video></video>+ 多个<track kind="metadata"></track>存音轨元数据,再配合自研播放器逻辑切换不同src或使用 HLS/DASH(如 hls.js、dash.js),由播放器控制音轨加载与混音。
kind="descriptions" 的正确用法示例
只用于辅助描述,且必须是 WebVTT 格式:
<video controls><source src="movie.mp4"><track kind="descriptions" src="desc.vtt" srclang="zh" label="中文描述"></track></source></video>
desc.vtt 内容示例:
WEBVTT 00:00:01.000 --> 00:00:04.000 镜头拉开,主角站在雨中的车站,手里攥着一张泛黄的车票。 00:00:05.500 --> 00:00:08.200 远处火车鸣笛,蒸汽缓缓升腾。
这段不会播放声音,只是供屏幕阅读器朗读或字幕系统渲染文字。
真正做音轨切换时,别被 kind 的字面意思带偏——"descriptions" 不是“音轨描述”,而是“画面描述”,它和播放声音毫无关系。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











