2011-01-17 16 views
5

मैं वीडियो एम्बेड करने के लिए VideoJS और SWFObject का उपयोग कर रहा हूं। विचार यह है कि वीडियोजेएस एचटीएमएल 5 वीडियो टैग का उपयोग करने की कोशिश करेगा और फ्लैश पर फॉलबैक करेगा अगर यह समर्थित नहीं है। मैं फ्लैशबैक के रूप में उपयोग करने के लिए फ़्लैश एम्बेड करने के लिए SWFObject का उपयोग करने की कोशिश कर रहा हूं। यहाँ प्रासंगिक कोड है:वीडियोजेएस और 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> 

अन्य अंकन सीएमएस Silverstripe है, जो इस मुद्दे में अप्रासंगिक है से है। यह क्रोम, सफारी, और आईई में ठीक काम करता है लेकिन फ़ायरफ़ॉक्स में नहीं। फ़ायरफ़ॉक्स में मुझे एक खाली कंटेनर मिलता है, जैसे कि यह <video> टैग का उपयोग करने का प्रयास कर रहा था लेकिन एक संगत स्रोत लोड नहीं कर सका।

यह फ्लैश को एम्बेड नहीं कर रहा है, और मुझे पता है कि swfobject कोड काम कर रहा है क्योंकि अगर मैं केवल swfobject कोड का उपयोग करता हूं, <video> टैग के भीतर नहीं, यह पूरी तरह से काम करता है। तो समस्या यह है: VideoJS swfobject द्वारा एम्बेडेड कोड पर फ़ॉलबैक नहीं करेगा। पर क्यों?

उत्तर

2

वीडियोज पहले से ही फ्लैश समर्थन में निर्माण का निर्माण है जो फॉलबैक के रूप में निर्मित है। आप अपने खुद के फ़्लैश प्लेयर का उपयोग करना चाहते हैं तो आप उदाहरण के लिए विकल्पों में इसे बदल सकते हैं:

<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

सच। हालांकि वह जिस वीडियो.जेएस का उपयोग कर रहा है वह पुराना है (उदाहरण के लिए 'setupAllWhenReady') जहां फ्लैश प्लेयर को एम्बेड कोड के हिस्से के रूप में शामिल किया गया था। शायद उन्नयन के साथ शुरू करने के लिए सबसे अच्छा है। – heff