0

好吧,问题是,对于我的应用程序,我必须动态更改视频 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:我不想使用任何第三方库。

4

2 回答 2

2

您必须更改currentTime视频准备就绪的时间。为此,您可以侦听视频中的事件,然后更改属性,例如loadeddata事件。您可以在此处查看完整列表。

v.addEventListener('loadeddata', function(){v.currentTime = 3;}, true);
于 2013-06-27T10:32:02.780 回答
1

您可以使用 url 来设置计时器:

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

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

于 2013-06-27T10:36:36.613 回答