2011-11-24 34 views
3

我有一個網頁使用html5編碼,使用標籤如header,footer, sectionvideo。 我使用modernizr在IE 7和IE 8中支持這些標籤。與modernizr不工作的每個人的視頻?

頁面中有一個視頻,包括Flash後備(每個人的視頻)。

當我在IE 8中測試頁面時,頁面呈現良好,包括特定於html5的標籤。

問題是,視頻的閃回回退不起作用。我有一個黑色區域,而不是Flash播放器。

僅當我刪除腳本標記才能加載modernizr時,它纔有效。如果我構建不帶html5填充的modernizr自定義版本,Flash播放器會加載並可以播放視頻,但html5標記無法識別。

如何使用modernizr/html5 shim爲每個人使用視頻? 爲什麼它不工作?

感謝您的幫助


更新:

爲了更進一步詳細,我的網頁是基於html5boilerplate和使用mediaelementsjs玩家。

這裏的HTML代碼

<head> 
... 
<script src="js/libs/modernizr-2.0.6.min.js"></script> 
... 
</head> 

<body> 

... 

<video width="332" height="250" poster="img/poster.jpg" controls="controls" preload="none"> 
<!-- MP4 for Safari, IE9, iPhone, iPad, Android, and Windows Phone 7 --> 
    <source type="video/mp4" src="video/myvideo.mp4" /> 
    <!-- WebM/VP8 for Firefox4, Opera, and Chrome --> 
    <source type="video/webm" src="video/myvideo.webm" /> 
     <!-- Flash fallback for non-HTML5 browsers without JavaScript --> 
     <object width="332" height="250" type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"> 
       <param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf"> 
       <param name="allowFullScreen" value="true"> 
       <param name="wmode" value="transparent"> 
       <param name="flashVars" value="config={'playlist':['http://.../img/poster.jpg',{'url':'http://.../video/myvideo.mp4','autoPlay':false}]}"> 
     <!-- Image as a last resort --> 
     <img src="img/poster.jpg" width="320" height="240" title="Your browser doesn't support video" /> 
     </object> 
    </video> 

... 

<script defer src="js/plugins.js"></script> 
<script defer src="js/script.js"></script> 

</body> 

什麼是的script.js

$(function() { 

if($.browser.msie && $.browser.version.substr(0,1)<=7) { 
    // $("video, audio").mediaelementplayer({defaultVideoWidth: 332,defaultVideoHeight: 250, features: ['playpause','progress','current','duration','volume','fullscreen']}); 
    } 
    else { 
    // initialize scrollable 
     $(".scrollable").scrollable({circular: true, mousewheel: true}).navigator(); 
     $("video, audio").mediaelementplayer({defaultVideoWidth: 332,defaultVideoHeight: 250, features: ['playpause','progress','current','duration','volume','fullscreen']}); 
    } 
}); 

的plugins.js文件中包含的代碼的MediaElement和-player.min.js https://github.com/johndyer/mediaelement/blob/master/build/mediaelement-and-player.js

只有當我評論該行才能加載modernizr時,它才能在IE 8中運行。

+0

如果您包含一些代碼或將其發佈到這裏http://jsfiddle.net/,這將幫助人們幫助您...... – ManseUK

+0

似乎有點困惑,爲什麼使用MediaElementJs如果您手動指定閃回備份播放器和使用其他玩家? MEJS是一個包含閃存組件的墊片...無論如何,是不是因爲你所包含的swf可能不在同一個域中?另外,腳本中的msie和版本檢查不是首先打敗了功能墊片的目的?如果你使用modernizr,視頻標籤突然被支持,而內部的對象標籤會作出不同的反應,那麼他們是不是應該使用noscript標籤作爲非腳本瀏覽器的解決方法...我的頭部正在旋轉^^ –

回答

0

您是否特別需要使用「Video for Everybody」?

我們與網頁結合使用http://mediaelementjs.com打上了HTML5和使用Modernizr的可在所有OS /瀏覽器沒有問題

+0

不,我不喜歡並不需要專門爲每個人製作視頻「,但爲了保持我的問題簡單,我提到了」所有人的視頻「而不是mediaelelmentjs,因爲它描述了相同的html代碼。 – benoit

+0

你能發表你的部分代碼嗎?我使用modernizer和mediaelementsjs,但它不適用於IE 8。 – benoit

0

如果您正在使用多個JavaScript庫使用jQuery.noConflict();

0

在我的情況,我也懷疑modernizr,但是FitVids。在MediaElement.js已經完成其魔術之後,FitVids正在搞「嵌入」對象。

爲了解決這個問題,我需要確保任何jQuery().fitVids()jQuery('video,audio').mediaelementplayer()之前曾經發生