更改src和currentTime不能一起工作

时间:2013-06-27 09:58:33

标签: javascript html5-video

嗯,问题是,对于我的应用程序,我必须动态更改视频src和currentTime。我试过独立改变两个工作正常。但是,当我试图将它们组合在一起时,存在一些问题。

这是我的视频标签和一个按钮,点击哪个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:我不想使用任何第三方库。

2 个答案:

答案 0 :(得分:2)

视频准备就绪后,您必须更改currentTime。为此,您可以从视频中侦听事件并更改属性,例如loadeddata事件。您可以看到完整列表here

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

答案 1 :(得分:1)

您可以使用网址设置计时器:

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

它适用于这个小提琴http://jsfiddle.net/UkZLf/