2013-11-27 297 views
2

所以我使用videojs來動態呈現一些來自instagram的mp4。我使用這個函數來調用播放器,直到它涉及到Firefox瀏覽器的偉大工程:在firefox中使用videojs播放flash mp4播放音頻 - 音頻播放但視頻爲空

 // o is the jquery object for the video 
     var vid_obj = o.find('video') 
     var vid_id = vid_obj[0].id 
     settings = vid_obj.attr('data-settings') 

     if (settings) settings = $.parseJSON(settings) 

     if (vid_id) { 
      settings.height = vid_obj.height() 
      videojs.options.flash.swf = "/scripts/vendor/video.js/video-js.swf" 
      videojs(vid_id, settings) 
     } 

當我運行在Chrome腳本或其他任何瀏覽器原生支持MP4,它加載很好,即使我指定Flash作爲技術訂單的默認值。在Firefox中,音頻播放,但視頻是空白的。

screen shot 2013-11-27 at 9 31 53 am

另外,我從Firefox收到這些錯誤:

指定的 「類型」, 「視頻/ MP4」 的屬性不被支持。媒體資源負載http://distilleryimage6.s3.amazonaws.com/6ccd80e8561211e38d000a4507324e8b_101.mp4失敗。 所有候選資源加載失敗。媒體加載已暫停。 不支持指定「video/mp4」的「type」屬性。媒體資源負載http://distilleryimage6.s3.amazonaws.com/6ccd80e8561211e38d000a4507324e8b_101.mp4失敗。 所有候選資源加載失敗。媒體加載已暫停。

我周圍挖上計算器了一下,發現這個線程:Issue with the flash fallback of VideoJs with Firefox

而且,這個有趣的觀點

我沒碰上在Firefox上一個問題,即Flash後備會播放視頻但是當我包含「準備就緒」事件時,視頻將會是空白的(音頻會播放)。我可以通過在$(this)對象上發射模糊事件來解決這個問題。如果您需要使用準備工作,這可能對您有所幫助。

我試着用$(this).blur()加入.ready()回調沒有成功。有什麼建議麼?

回答

3

您也可以發佈自己的答案,並接受它,如果你喜歡(因爲你的確是找到了解決方案的一個),但這裏的從GitHub在對這個問題的情況下別人絆了答案。下面

溶液從Video.js GitHub的issue #854。問題和解決方案由uxtx提供。

@mmcc,感謝您的幫助。我掀起了這個動態視頻樣機(http://jsfiddle.net/nbAN5/5/),它對我來說是完美的。做了一些更多的挖掘,並且在我的實現中出現了一個問題,視頻獲取動畫會導致Flash對象位置被錯誤翻譯。添加CSS規則重置翻譯解決它,IE:

object.vjs-tech { 
    -moz-transform: translate(0,0) 
} 

注:如果您使用的videojs YouTube的插件,我相信使用iframe,你需要使用相同的修復程序解決該翻譯問題。

+0

衛生署!謝謝!我發現了這一點。儘管對於你的幫助,我完全樂意給你業力! – uxtx