2011-01-17 34 views
5

Tôi đang sử dụng VideoJSSWFObject để nhúng video. Ý tưởng là VideoJS sẽ cố gắng sử dụng thẻ video HTML5 và sẽ dự phòng trên Flash nếu nó không được hỗ trợ. Tôi đang cố gắng sử dụng SWFObject để nhúng Flash để sử dụng như dự phòng. Đây là mã có liên quan:VideoJS và vấn đề nhúng 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> 

Ký hiệu khác là từ CMS Silverstripe, không liên quan trong vấn đề này. Điều này hoạt động tốt trong Chrome, Safari và IE nhưng không hoạt động trong Firefox. Trong Firefox, tất cả những gì tôi nhận được là một thùng chứa trống, như thể nó đang cố sử dụng thẻ <video> nhưng không thể tải một nguồn tương thích.

Nó không nhúng Flash ở tất cả, và tôi biết mã swfobject đang hoạt động vì nếu tôi chỉ sử dụng mã swfobject, không phải trong thẻ <video>, nó hoạt động hoàn hảo. Vì vậy, vấn đề là: VideoJS sẽ không dự phòng mã được nhúng bởi swfobject. Nhưng tại sao?

Trả lời

2

videojs đã xây dựng trong hỗ trợ flash được xây dựng dưới dạng dự phòng. Nếu bạn muốn sử dụng trình phát flash của riêng mình, bạn có thể thay đổi tùy chọn này trong các tùy chọn ví dụ:

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

bổ sung: swfObject đã có trong bao gồm video.

+0

True. Mặc dù phiên bản Video.js anh ấy sử dụng là phiên bản cũ (ví dụ: 'setupAllWhenReady'), nơi trình phát flash được đưa vào như một phần của mã nhúng. Có lẽ tốt nhất để bắt đầu với nâng cấp. – heff

Các vấn đề liên quan