canPlayType之间的差异可能也可能是输出

时间:2013-05-12 05:04:15

标签: javascript html5 html5-video

我正在创建一个视频嗅探框架,我必须嗅探不同浏览器的HTML5视频播放功能。为此,我使用了canPlayType()方法,它给了我三个可能的结果:

  1. 空字符串(无法运行视频时)
  2. “也许”
  3. “可能”
  4. 我需要知道“可能”和“可能”之间的确切区别。请让我知道是否有人可以解决我的困惑。提前谢谢。

3 个答案:

答案 0 :(得分:6)

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

例如,类型audio/ogg可能是也可能不可播放,因为Ogg是一个容器类型,可以包含几个不同的编解码器。 VorbisOpus是两个可以包含Ogg的编解码器。一般来说,浏览器播放Ogg文件的能力与浏览器播放Vorbis或Opus编解码器的能力无关,因此无法说明它是否可以播放您的Ogg文件。

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

进行类比:假设你问我是否能驾驶你的船。我擅长驾驶小型快艇,但我不能开大型游轮。我必须回答“你能开我的船吗?”的问题。与“可能”,因为你没有告诉我究竟是什么类型的船。

答案 1 :(得分: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

  
      
  • "可能":如果指定的类型似乎可以播放。
  •   
  • "也许":如果不播放它就无法判断该类型是否可播放。
  •   
  • 空字符串:如果无法播放指定的类型。
  •   

此外,在某些情况下(虽然这似乎仅发生在<audio>元素上),但返回的值为"no"而不是空字符串:

http://24ways.org/2010/the-state-of-html5-audio

http://diveintohtml5.info/everything.html

答案 2 :(得分:-2)

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

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

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