HTML5 带来或将带来<video>
和 <audio>
标签等等。自从我听说了他们,读了之后更是如此Why do we have an img
element?特别是Jay C. Weber's message back from 1993我想知道:这到底是为什么?
HTML 使用通用媒体包含方法已经有一段时间了。如果作者愿意,它支持回退到其他格式和文本,现在在两个更多的特殊用途标签中不必要地重复,每个标签用于一种媒体。
对我来说,<video>
和 <audio>
只是<object>
这是伪装的——或者我在这里遗漏了他们都支持的真正重要的东西 <object>
不是吗?
我的困惑源于以下问题:给定一个片段:
<video id="movie" width="320" height="240" preload controls>
<source src="pr6.mp4" />
<source src="pr6.webm" type='video/webm; codecs="vp8, vorbis"' />
<source src="pr6.ogv" type='video/ogg; codecs="theora, vorbis"' />
<object>
... fallback to Flash object
</object>
</video>
难道不能这样写吗
<object width="320" height="240" data='pr6.mp4'>
<object width="320" height="240" data='pr6.webm' type='video/webm; codecs="vp8, vorbis"'>
<object width="320" height="240" data="pr6.ogv" type='video/ogg; codecs="theora, vorbis"'>
<object>
... fallback to Flash object
</object>
</object>
</object>
</object>
preload
和 controls
可以给出为 <param>
元素,我不太确定如何处理 id
现在属性。
还有什么可以阻止浏览器供应商仅使用正确的 MIME 类型和编解码器呈现视频和音频内容,而不是将它们交给插件吗?
最佳答案
<video>
和 <audio>
标签不是 <object>
伪装。参见 this excellent explanation新标签。简而言之,HTML-5 浏览器公开了它们对音频和视频的原生支持。他们将播放他们已知的视频源,或者回退到良好的旧 Flash,如下所示:
<video id="movie" width="320" height="240" preload controls>
<source src="pr6.mp4" />
<source src="pr6.webm" type='video/webm; codecs="vp8, vorbis"' />
<source src="pr6.ogv" type='video/ogg; codecs="theora, vorbis"' />
<object>
... fallback to Flash object
</object>
</video>
编辑:MIME 类型可以说明一切,但只有在您请求文件之后。 <object>
对 HTML 分析和语义不利。 JS 知道 MIME 类型吗?
关于video - 为什么需要 <video> 或 <audio>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3861466/