VideoJS 和 swfobject 嵌入问题
Posted
技术标签:
【中文标题】VideoJS 和 swfobject 嵌入问题【英文标题】:VideoJS and swfobject embedding issue 【发布时间】:2011-06-10 14:05:23 【问题描述】:我正在使用 VideoJS 和 SWFObject 嵌入视频。这个想法是 VideoJS 将尝试使用 html5 视频标签,如果不支持它,它将回退到 Flash。我正在尝试使用 SWFObject 嵌入 Flash 以用作后备。以下是相关代码:
<ul id="client_gallery">
<% if PortfolioMedia %>
<% control PortfolioMedia %>
<% if VideoFile %>
<li style="width:$VideoWidthpx;height:$VideoHeightpx">
<div class="video-js-box">
<video class="video-js" controls preload>
<source src="$VideoFile.URL" type="video/mp4" />
<div id="flash_player"></div>
<script type="text/javascript">
var flashvars =
'file': "$VideoFile.URL"
;
var params =
'allowfullscreen': "true",
"wmode": "transparent"
;
var attr =
'id': 'f_player',
'name': 'f_player'
;
swfobject.embedSWF('/portfolio/javascript/jwplayer/player.swf', 'flash_player', '$VideoWidth', '$VideoHeight', '9', '', flashvars, params, attr, function(e)
);
</script>
</video>
</div>
</li>
<% end_if %>
<% end_control %>
<% end_if %>
<script type="text/javascript">
$(function()
VideoJS.setupAllWhenReady();
);
</script>
</ul>
另一个符号来自 CMS Silverstripe,与本期无关。这适用于 Chrome、Safari 和 IE,但不适用于 Firefox。在 Firefox 中,我得到的只是一个空容器,好像它试图使用 <video>
标记但无法加载兼容的源。
它根本没有嵌入 Flash,而且我知道 swfobject 代码可以正常工作,因为如果我只使用 swfobject 代码,而不是在 <video>
标记内,它可以完美运行。所以问题是:VideoJS 不会回退到 swfobject 嵌入的代码。但为什么呢?
【问题讨论】:
【参考方案1】:videojs 已经内置了 Flash 支持作为后备。如果您想使用自己的 Flash 播放器,可以在选项中进行更改,例如:
<script type="text/javascript">
VideoJS.options.flash.swf = "pathtoyourplayer.swf";
VideoJS.options.flash.flashVars = youroptions;
VideoJS.options.flash.params = youtparams;
VideoJS.options.flash.attributes = yourattributes;
</script>
..
<video ...>
<source src=".." type="video/mp4" />
</video>
附加:swfObject 已包含在 videojs 中。
【讨论】:
是的。尽管他使用的 Video.js 版本是旧版本(例如“setupAllWhenReady”),但 Flash 播放器已作为嵌入代码的一部分包含在内。可能最好从升级开始。以上是关于VideoJS 和 swfobject 嵌入问题的主要内容,如果未能解决你的问题,请参考以下文章