【发布时间】:2013-05-12 05:04:14
【问题描述】:
我正在创建一个视频嗅探框架,我必须在其中嗅探不同浏览器的 HTML5 视频播放能力。为此,我使用了canPlayType() 方法,这给了我三个可能的结果:
- 空字符串(无法运行视频时)
- “也许”
- “可能”
我需要知道“也许”和“可能”之间的确切区别。请让我知道是否有人可以解决我的困惑。提前致谢。
【问题讨论】:
标签: javascript html html5-video
我正在创建一个视频嗅探框架,我必须在其中嗅探不同浏览器的 HTML5 视频播放能力。为此,我使用了canPlayType() 方法,这给了我三个可能的结果:
我需要知道“也许”和“可能”之间的确切区别。请让我知道是否有人可以解决我的困惑。提前致谢。
【问题讨论】:
标签: javascript html html5-video
probably 表示浏览器可以播放所描述的媒体类型。 maybe 表示类型可能是可播放的。通常,这是因为所描述的媒体类型不够具体,无法做出决定。
例如,audio/ogg 类型可能是可播放的,也可能是不可播放的,因为 Ogg 是一种容器类型,可以包含多个不同的编解码器。 Vorbis 和 Opus 是两个 Ogg 包含的编解码器。浏览器播放 Ogg 文件的能力通常与浏览器播放 Vorbis 或 Opus 编解码器的能力无关,因此它不能说它是否可以播放您的 Ogg 文件。
如果您询问带有audio/ogg; codecs=vorbis 的特定编解码器,那么浏览器可以确定它是否可以播放该类型。
打个比方:假设你问我能否驾驶你的船。我擅长驾驶小型快艇,但我无法驾驶大型游轮。我必须回答“你能开我的船吗?”这个问题。用“也许”,因为你还没有告诉我它是什么类型的船。
【讨论】:
说明 W3 规范:http://www.w3.org/TR/2011/WD-html5-20110113/video.html#mime-types
media.canPlayType(type)根据用户代理对播放给定类型媒体资源的信心程度返回空字符串(否定响应)、“可能”或“可能”。
更多详情请见 MDN:https://developer.mozilla.org/en/docs/Web/API/HTMLMediaElement#Methods
- “可能”:如果指定的类型看起来可以播放。
- “maybe”:如果不播放就无法判断该类型是否可以播放。
- 空字符串:如果指定类型肯定不能播放。
此外,在某些情况下(尽管这似乎只发生在 <audio> 元素上),返回值是 "no" 而不是空字符串:
【讨论】:
来源:http://www.w3schools.com/tags/av_met_canplaytype.asp
canPlayType() 方法可以返回以下值之一:
【讨论】: