W3C HTML5标准阅读笔记 - source、track

标准原文:https://www.w3.org/TR/html5/embedded-content-0.html#the-source-element

HTML5中,source标签用于定义音视频的来源,而track标签则用于为多媒体文件定义字幕等外部辅助文本。

source

source标签用于定义音频、视频的源文件,使用时作为video/audio的子标签来发挥作用。与video/audio的src属性相比,使用source标签有一个好处:可以对同一个video/audio定义多个多媒体源。这样,当第一个多媒体源文件不可用时,浏览器会试图使用第二个多媒体源,并依此类推。

除了通用属性,source标签还拥有2个特有属性:

  • src。用于定义源文件的URL地址。
  • type。用于定义源文件的MIME Type。对于不支持的MIME Type,浏览器将不下载相应的源文件。

对于source元素,当它被插入到video/audio中后,对其所做的改动将不会产生任何效果 -- 因此,在文档解析完成后,标准不建议再对source元素进行任何操作。如果实在需要对播放的内容进行动态改变的话,可以通过修改video/audio元素的src属性来实现。

与别的元素相同,source元素也拥有onerror属性用于监听错误事件,不过有趣的是,在source元素的onerror属性上挂载的事件监听函数,其传入参数并不是source对象,而是source的父元素对象(video/audio)。

track

track标签用于为多媒体文件定义外部的辅助文本(比如字幕文件等)。它所拥有的特有属性有:

  • kind。定义辅助文本的类型,如字幕文本对应kind值为subtitles。kind属性值的可选项包括:
    • subtitles。字幕。这很明显是最常用的一个选项,因此当kind属性缺失时,标准定义其默认值为subtitles。
    • captions。对内容的标注,适用于静音、杂音过多等情况。
    • description。对内容的描述信息,为网页语音阅读器而设计。
    • chapters。章节信息,用于对多媒体内容的浏览切换 -- 类似于DVD碟片中的歌曲切换等。
    • metadata。多媒体内容的元数据信息,用于供脚本进行处理,页面上一般不显示。
  • src。定义辅助文本的URL地址。
  • srclang。定义辅助文本的自然语言。当kind属性值为subtitles时,必须定义srclang属性。
  • label。对辅助文本进行额外标记 -- 一般浏览器会在界面上显示label值。
  • default。boolean属性,设定是否为默认辅助文本。