我無法計算如何將監聽器添加到視頻播放。 我希望它在達到特定播放時間(即10秒)時最終停止播放。如何添加監聽器到視頻播放
我已經試過:
while(video.currentTime != timeToStop){
video.play();
}
但它會導致瀏覽器掛起,可能是因爲我開始video.play()所有的時間。
do while
導致相同的問題。
那我該用什麼?
我無法計算如何將監聽器添加到視頻播放。 我希望它在達到特定播放時間(即10秒)時最終停止播放。如何添加監聽器到視頻播放
我已經試過:
while(video.currentTime != timeToStop){
video.play();
}
但它會導致瀏覽器掛起,可能是因爲我開始video.play()所有的時間。
do while
導致相同的問題。
那我該用什麼?
要跟蹤視頻的進度,可以使用timeupdate
事件並檢查視頻的currentTime
屬性是否已通過最大值。這裏有一個例子:
window.addEventListener("load", function() {
var video = document.getElementById("video1"),
timeToStop = 2;
video.addEventListener("timeupdate", function() {
if (this.currentTime >= timeToStop) {
this.pause();
}
}, false);
}, false);
DEMO:http://jsfiddle.net/eGw52/
(其中例如使用2秒,不是10)
視頻與承諾很好地發揮。這是一個例程,在特定的時間點暫停並返回一個承諾,當這種承諾發生時(或視頻由於其他原因暫停或結束)。
function pause_at (video, t) {
var promise=new Promise();
function reached() {
promise.fulfill (video.currentTime);
video.removeEventListener ("timeupdate", timeupdate);
video.removeEventListener ("pause", reached);
}
function timeupdate() {
if (video.currentTime >= t) {
reached();
video.pause();
}
}
video.addEventListener ("timeupdate", timeupdate);
video.addEventListener ("pause", reached);
return promise;
}
用法:
pause_at (video,60).then (function() {alert ("At 60-second mark!");});
video.play();
注意,視頻的結局也被認爲是視頻「暫停」(與發射暫停事件),這樣的承諾也將實現在視頻結束。
調整你想使用你最喜歡的承諾庫。如果您想反向運行視頻(負播放率),則需要修復此問題。 :-)
你想做什麼?你的代碼沒有顯示添加監聽器。你想讓聽衆什麼時候運行?視頻開始時?什麼時候結束?有些事件可以偵聽,比如'video.addEventListener(「ended」,someFunction);'。如果你想聽每一個勾號,你可以使用'timeupdate'事件 – Ian
這裏有一個你可能想要的東西的例子:http://jsfiddle.net/XK4NW/ – Ian
很好,這正是我所需要的。謝謝你,你想把它作爲答案發布還是應該刪除這個問題? –