HTML Audio元素可以播放错误的音频格式

HTML Audio element can play wrong audio format

本文关键字:错误 音频 格式 播放 Audio 元素 HTML      更新时间:2023-09-26

我想知道当src元素的type属性设置为错误格式时,它可能的HTML音频元素如何播放歌曲?

例如,我设置一个mp4音频文件的类型属性为音频/wav,它仍然播放,即使我没有指定一个后备源?而且,如果你省略类型,它似乎仍然可以找出正确的音频格式。

所以我的问题是源元素的type属性的目的是什么?

<audio controls="controls">
  Your browser does not support the <code>audio</code> element.
  <source src="http://a898.phobos.apple.com/us/r1000/039/Music6/v4/13/22/67/1322678b-e40d-fb4d-8d9b-3268fe03b000/mzaf_8818596367816221008.plus.aac.p.m4a">
</audio>

下面是一个显示https://jsfiddle.net/abftb7sm/4/

效果的示例

经过一些测试,根据规范,似乎MediaElements的type属性只有帮助浏览器确定是否应该以及如何获取数据。

type属性给出媒体资源的类型,以帮助用户代理在获取该媒体资源之前确定是否可以播放该媒体资源。

在Firefox

,
将其设置为任何有效值,但不符合实际的文件类型将使UA获取数据为plain。然后当被要求播放时,UA会仔细检查数据类型,并能够覆盖您给出的type

将其设置为一些无效的值(例如"Audio/mpeg"而不是"audio/mpeg")将使您的UA甚至无法获取任何数据。这里没有重复检查。

Chrome似乎永远不会信任我们…