2013-06-27 22 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);