私はVideoJSとSWFObjectを使用して動画を埋め込みました。 VideoJSはHTML5ビデオタグを使用しようとしますが、サポートされていない場合はFlashでフォールバックします。 SWFObjectを使用してFlashを埋め込み、フォールバックとして使用しようとしています。関連するコードは次のとおりです。VideoJSとswfobject埋め込みの問題
<ul id="client_gallery">
<% if PortfolioMedia %>
<% control PortfolioMedia %>
<% if VideoFile %>
<li style="width:{$VideoWidth}px;height:{$VideoHeight}px">
<div class="video-js-box">
<video class="video-js" width="$VideoWidth" height="$VideoHeight" 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は全く埋め込まれておらず、<video>
タグ内ではなくswfobjectコードだけを使用すると、swfobjectコードが動作していることが分かります。だから問題は:VideoJSはswfobjectによって埋め込まれたコードにフォールバックしません。しかし、なぜ?
真。彼が使用しているVideo.jsのバージョンは、Flash Playerが埋め込みコードの一部として含まれていた旧バージョンのVideo.js( 'setupAllWhenReady'など)ですが、おそらくアップグレードから始めることをお勧めします。 – heff