我正在创建一个视频嗅探框架,我必须嗅探不同浏览器的HTML5视频播放功能。为此,我使用了canPlayType()方法,它给了我三个可能的结果:
我需要知道“可能”和“可能”之间的确切区别。请让我知道是否有人可以解决我的困惑。提前谢谢。
答案 0 :(得分:6)
probably
表示浏览器可以播放所描述的媒体类型。 maybe
表示类型可以播放。通常,这是因为所描述的媒体类型不够具体,无法做出决定。
例如,类型audio/ogg
可能是也可能不可播放,因为Ogg是一个容器类型,可以包含几个不同的编解码器。 Vorbis和Opus是两个可以包含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"
而不是空字符串:
答案 2 :(得分:-2)
来源:http://www.w3schools.com/tags/av_met_canplaytype.asp
canPlayType()方法可以返回以下值之一: