2013-06-27 21 views
0

好的,对我的应用程序来说,我必须动态更改视频src和currentTime。我试图改变两个独立的工作正常。但是,当我试图一起做它们时,会有一些问题。更改src和currentTime不能一起工作

这是我的视频标签和一个按钮,onclicking哪些src和currentTime必须更改。

<video id="video" src="sample.mp3" controls autoplay></video> 
<button onclick="foobar()">change</button> 

和我的foobar的()函数是

function foobar() 
{ 
v=document.getElementById("video"); 
v.src = "foo.mp3"; 
v.load(); 
v.currentTime = 3; 
} 

当我删除或者v.src或v.currentTime,其做工精细... 我一直在使用networkState和currentState,没有运气尝试。我甚至等了一段时间(JavaScript计时器)确保新的mp3文件完全加载,然后尝试更改currentTime。即使这样也行不通。

请帮我..

PS:我不想使用任何第三方库。

+0

我想你必须等待,直到新的视频已经设定之前被加载'currentTime的'。 – Teemu

回答

1

您可以使用URL设置定时器:

function foobar() 
{ 
    v=document.getElementById("video"); 
    v.src = "foo.mp3#t=3"; 
    v.load(); 
} 

它工作在这个小提琴http://jsfiddle.net/UkZLf/

2

当视频准备就绪时,您必须更改currentTime。为了做到这一点,您可以从视频中收听活动,然后更改属性,例如loadeddata活动。你可以看到完整列表here

v.addEventListener('loadeddata', function(){v.currentTime = 3;}, true);