如何将侦听器添加到视频播放中
How to add listener to a video playback
我不知道如何在视频播放中添加侦听器。我希望它最终在达到特定播放时间(即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);
演示: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 ();
请注意,视频结束也被视为视频"暂停"(触发暂停事件),因此当视频结束时,承诺也将实现。
调整你希望使用你最喜欢的承诺库。如果你想反向运行视频(负播放速率),你需要解决这个问题。:-)
相关文章:
- 如何检查用户在html5视频播放器中观看了完整的视频
- 可以在响应时隐藏iphone上的“播放”按钮以进行视频播放
- html5视频播放器和视频js之间的关系
- 视频播放器错误promise DOMException中未捕获
- html视频播放器并不总是从src读取
- HTML 5视频播放器用给定的数字更新currentTime
- html5视频交互式视频播放器
- 如何构建自己的 VAST 视频播放器
- 如何专注于YouTube视频播放器对象
- HTML5视频播放/停止按钮与Javascript
- 如何在前台弹出YouTube视频播放器
- 如何在悬停在图像上时弹出youtube视频播放器
- 将Backbone事件与HTML5视频播放事件结合使用
- 移动设备的动态视口始终包含固定尺寸的视频播放器
- 浏览器同步摄像头加速视频播放不是一个功能
- 使用MediaSource扩展播放视频播放列表
- 当我在视频播放器上单击播放时,它会在页面上播放两个视频
- 嵌入视频播放器播放按钮可同时播放所有视频播放器
- 设置计时器以等待为flash回退视频播放器加载swfobject脚本
- 三星智能电视视频播放器应用程序-访问存储在USB上的mp4