HTML Audio 元素可以播放错误的音频格式
Posted
技术标签:
【中文标题】HTML Audio 元素可以播放错误的音频格式【英文标题】:HTML Audio element can play wrong audio format 【发布时间】:2015-10-19 01:33:51 【问题描述】:我想知道当 src 元素的 type 属性设置为错误格式时,它可能的 html 音频元素如何播放歌曲?
例如,我将 mp4 音频文件的类型属性设置为 audio/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/的jsfiddle
【问题讨论】:
你根本没有设置类型 我实际上省略了它,因为它仍然可以播放,但如果我包含错误的类型,它也会播放 【参考方案1】:经过一些测试,根据the specs 看来,MediaElements 的type
属性似乎仅帮助浏览器确定它是否应该以及如何获取 数据。
type 属性给出媒体资源的类型,帮助用户代理在获取该媒体资源之前确定它是否可以播放。
在 Firefox 上,
将其设置为任何有效值,但不符合实际文件类型将使 UA 以plain
获取数据。然后当被要求播放时,UA 会仔细检查数据类型并能够覆盖您提供的type
。
但是,将其设置为一些无效值(例如 "Audio/mpeg"
而不是 "audio/mpeg"
)将使您的 UA 甚至无法获取任何数据。这里没有仔细检查。
Chrome 似乎从不信任我们...
【讨论】:
以上是关于HTML Audio 元素可以播放错误的音频格式的主要内容,如果未能解决你的问题,请参考以下文章
IOS音频1:之采用四种方式播放音频文件AudioToolbox AVFoundation OpenAL AUDIO QUEUE