2012-03-25 89 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