2012-03-25 86 views
1

您可以查看測試頁面hereHTML5視頻IE9與其他

我使用的解決方案SO here

我也使用Modernizr javascript lib,如指定的發佈中所述。

問題是這樣的:頁面加載正常,我可以使用Crome,FireFox和Safari中的下拉菜單更改視頻剪輯播放。但是由於某些原因,在IE9中,儘管如果前一個視頻正在運行,視頻會隨着選擇而改變,但新視頻會以暫停狀態加載,即不會顯示「播放」按鈕,而是顯示「暫停」按鈕狀態。

這裏是我的代碼:HTML:

<video id="vidScreen" width="624" height="260" preload="auto" controls="controls"></video> 

的Javascript:(初始視頻剪輯負載)

功能doMetaphorsInitialise(){ window.document.getElementById( 「metaphorsStyle」)禁用= false;

var targetMovie = window.document.getElementById("vidScreen"); 

targetMovie.volume = 1; 

if (Modernizr.video && Modernizr.video.h264) 
{ 
    targetMovie.setAttribute("src", "inception/inception.mp4"); 
} 
else if (Modernizr.video && Modernizr.video.ogg) 
{ 
    targetMovie.setAttribute("src", "inception/inception.ogg"); 
} 
else if (Modernizr.video && Modernizr.video.webm) 
{ 
    targetMovie.setAttribute("src", "inception/inception.webm"); 
} 
document.forms["metaphorsMenu"].reset(); 
} 

的Javascript:(對於在下拉菜單中canges:

function doMetaphors() 

{ 

var v = new Array(); 

v["what"] = [ 
     "what/what.mp4", 
     "what/what.ogg", 
     "what/what.webm" 
     ]; 
v["bullet"] = [ 
     "bullet/bullet.mp4", 
     "bullet/bullet.ogg", 
     "bullet/bullet.webm" 
     ]; 
v["seven"] = [ 
     "seven/seven.mp4", 
     "seven/seven.ogg", 
     "seven/seven.webm" 
     ]; 

v["anderson"] = [ 
     "anderson/anderson.mp4", 
     "anderson/anderson.ogg", 
     "anderson/anderson.webm" 
     ]; 

v["smith"] = [ 
     "videos/video3.webmvp8.mp4", 
     "videos/video3.theora.ogg", 
     "videos/video3.mp4video.webm" 
     ]; 

v["everything"] = [ 
     "everything/everything.mp4", 
     "everything/everything.ogg", 
     "everything/everything.webm" 
     ]; 


var menuID = window.document.getElementById("metaphorsStyle"); 

var getDestination = menuID[menuID.selectedIndex].value; 

var targetMovie = window.document.getElementById("vidScreen"); 

if (Modernizr.video && Modernizr.video.h264) 
{ 
    targetMovie.setAttribute("src", v[getDestination][0]); 
} 
else if (Modernizr.video && Modernizr.video.ogg) 
{ 
    targetMovie.setAttribute("src", v[getDestination][1]); 
} 
else if (Modernizr.video && Modernizr.video.webm) 
{ 
    targetMovie.setAttribute("src", v[getDestination][2]); 
} 

//targetMovie.load(); 
} 

我註釋掉targetMovie.load();是它似乎沒有必要,但即使它是不工作

我也有考慮:

targetMovie.addEventListener('loadeddata', initialiseControls, false); 

所以在initialiseControls我可以切換播放/ PA使用按鈕,但沒有在網上找到任何信息。

希望我的查詢很清楚,不會太長。

真的會喜歡這方面的一些幫助。

非常感謝。

新聞:我現在已經在下拉菜單中的所有選項功能,所以你可以選擇任何項目,並見證我想改正在IE9中的行爲。再次感謝你。

回答

1

有一個屬性,您可以檢查播放器是否已暫停。更新玩家的控制總是更好。在你的情況下,我會聽'loadeddata',然後檢查videoplayer狀態並更新控件。所以嘗試:

​​

希望它的工作。順便說一句:這裏是一個很好的現場演示HTML5視頻元素的所有事件/屬性:http://www.w3.org/2010/05/video/mediaevents.html

+0

我試過了,它說:showPlayButtonAndHidePauseButton();不是一個功能。我錯過了什麼嗎? – iTEgg 2012-03-26 15:03:06

+0

http://www.w3.org/2010/05/video/mediaevents.html < - 顯示我提到的同樣的問題! :( – iTEgg 2012-03-26 15:07:23

+1

來評論#1:與「showPlayButtonAndHidePauseButton()」我的意思是,這是你的邏輯應寫入的地方,所以用你更新控件的方式替換函數f.e. myPauseButton.hide(); myPlayButton。顯示() tcomment#2:應該說是什麼期望...即仍然解決方法應該工作 – longilong 2012-03-26 15:38:08