2011-01-17 17 views
5

私はVideoJSSWFObjectを使用して動画を埋め込みました。 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によって埋め込まれたコードにフォールバックしません。しかし、なぜ?

答えて

2

videojs既に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に既にあります。

+0

真。彼が使用しているVideo.jsのバージョンは、Flash Playerが埋め込みコードの一部として含まれていた旧バージョンのVideo.js( 'setupAllWhenReady'など)ですが、おそらくアップグレードから始めることをお勧めします。 – heff

関連する問題