我尝试使用HTML5播放器在浏览器中播放.mp4视频。
但是,Firefox并不处理.mp4视频格式。所以在这种情况下,我想切换到可以完成这项工作的Flash播放器。
而不是使用以下JavaScript代码,这被称为不可靠:
<!-- language: lang-js -->
if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
{
//Do Firefox-related activities
}
有没有办法识别HTML5播放器并知道它是否可以处理.mp4视频格式?
答案 0 :(得分:4)
您可以使用HTML5提供多种格式和/或替代方案。每个浏览器都会选择更合适的浏览器:
<video width="1280" height="720" controls="controls">
<source src="video/movie.ogg" type="video/ogg" />
<source src="video/movie.webm" type="video/webm" />
<source src="video/movie.mp4" type="video/mp4" />
<!-- none of the formats supported -> provide flash -->
<!-- YOUR EMBED FLASH PLAYER -->
</video>
当然,这应该有效。我使用了Youtube Flash版本。您只需设置自己的Flash对象版本:
<video width="1280" height="720" controls="controls">
<source src="video/movie.ogg" type="video/ogg" />
<source src="video/movie.webm" type="video/webm" />
<source src="video/movie.mp4" type="video/mp4" />
<!-- none of the formats supported -> provide flash -->
<object width="420" height="315">
<param name="movie" value="//www.youtube.com/v/z82D_dBAA8Y?hl=es_ES&version=3"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="//www.youtube.com/v/z82D_dBAA8Y?hl=es_ES&version=3" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>
</video>
答案 1 :(得分:3)
谢谢@Skymt。
我找不到返回可播放格式的方法。但是这个链接 可能会帮助您提供更好的后备(在后备下检查 选项): https://developer.mozilla.org/en-US/docs/Web/HTML/Using_HTML5_audio_and_video#Showing_fallback_content_when_no_source_could_be_decoded
我正在使用videojs这是我的javascript代码:
videojs("videoViewer", {playerFallbackOrder: ["html5", "flash", "links"]}, function(){});
var v = document.querySelector('video');
source = v.querySelector('source');
source.addEventListener('error', function(ev)
{
videojs("videoViewer", {playerFallbackOrder: ["flash", "html5", "links"]}, function(){});
}, false);
它与你在链接上找到的例子非常相似,唯一的区别是我只有1个来源,我使用的是videojs。