2011-01-17 8 views
5

Estoy usando VideoJS y SWFObject para incrustar videos. La idea es que VideoJS intente usar la etiqueta de video HTML5 y se retracte en Flash si no es compatible. Estoy tratando de usar SWFObject para incrustar el Flash para utilizarlo como alternativa. Aquí está el código correspondiente:Incidencia de incrustación de videoJS y 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> 

La otra notación es del CMS SilverStripe, que es irrelevante en este tema. Esto funciona bien en Chrome, Safari e IE pero no en Firefox. En Firefox, todo lo que obtengo es un contenedor vacío, como si estuviera tratando de usar la etiqueta <video>, pero no pude cargar una fuente compatible.

No está incrustando Flash en absoluto, y sé que el código swfobject está funcionando porque si uso solo el código swfobject, no dentro de la etiqueta <video>, funciona perfectamente. Entonces, el problema es: VideoJS no recurrirá al código incrustado por swfobject. ¿Pero por qué?

Respuesta

2

videojs ya tiene una compilación en el soporte de flash incorporado como respaldo. Si desea utilizar su propio reproductor de flash se puede cambiar en las opciones, por ejemplo:

<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> 

adicional: SWFObject ya está en videojs incluidos.

+0

Es cierto. Aunque la versión de Video.js que está utilizando es antigua (por ejemplo, 'setupAllWhenReady') donde se incluyó el flash como parte del código de inserción. Probablemente sea mejor comenzar con la actualización. – heff

Cuestiones relacionadas