2013-05-12 19 views
6

我正在创建一个视频嗅探框架,我必须嗅探不同浏览器的HTML5视频播放功能。对于我所用的canPlayType()方法,它是给我三种可能的结果:canPlayType之间的区别可能可能并可能输出

  1. 空字符串(当无法运行视频)
  2. “也许”
  3. “可能”

我需要知道“可能”和“可能”之间的确切区别。请让我知道是否有人可以解决我的困惑。提前致谢。

回答

-2

来源:http://www.w3schools.com/tags/av_met_canplaytype.asp

的canPlayType()方法可以返回下列值之一:

  • “可能” - 浏览器最有可能支持该音频/视频类型
  • “也许” - 浏览器可能支持此音频/视频类型
  • “” - (空字符串)浏览器不支持此音频/视频 类型
2

陈述的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://24ways.org/2010/the-state-of-html5-audio

http://diveintohtml5.info/everything.html

5

probably表示浏览器可以播放所描述的媒体类型。 maybe表示类型可能是可以播放。通常,这是因为所描述的媒体类型不够具体,无法做出决定。

例如,类型audio/ogg可能或可能不能播放,因为奥格是可能包含几个不同的编解码器的容器类型。 VorbisOpus是两个Ogg包含的编解码器。一般来说浏览器能够播放Ogg文件并没有说浏览器能够播放Vorbis或Opus编解码器,所以也不能说它是否可以播放Ogg文件。

如果您询问audio/ogg; codecs=vorbis的特定编解码器,那么浏览器可以确定它是否可以播放该类型。

打个比方:假设你问我,如果我能驾驶你的船。我擅长驾驶小型快艇,但我无法驾驶一艘大型游轮。我必须回答这个问题:“你能开我的船吗?”与“也许”,因为你没有告诉我它是什么类型的船。