HTML5视频支持ontimeupdate
事件;在YouTube API中是否有一个等价物没有在文档中列出,或者只是我不知道?我试过用setInterval方法每隔n毫秒检查一次,但之后我必须检查视频是否正在播放,等等。有人处理过这个问题吗?
根据文档,没有这样的事件(我想您也知道这一点)。其他答案也说明了这一点,就我在代码示例中看到的而言,没有直接的等价物。即使在一些代码示例中(查看入门代码),它们也依赖于setTimeout,以便在视频开始后6秒执行某些操作。
有些人找到了解决办法,例如在这个答案中,他们创建了一个计时器,这样他们实际上可以每X毫秒启动一次时间检查:
function onPlayerReady() {
function updateTime() {
var oldTime = videotime;
if(player && player.getCurrentTime) {
videotime = player.getCurrentTime();
}
if(videotime !== oldTime) {
onProgress(videotime);
}
}
timeupdater = setInterval(updateTime, 100);
}
通过这种方式,您可以实际模拟事件时间更新,您只需要清除状态更改时的超时(如果它停止了,您不想连续调用该函数)。
有些人创建了一个YouTube播放器API包装器,如HTML5视频API。在那一个你实际上是在访问嵌入式Youtube视频中的HTML5视频API。
我不确定Youtube API的路线图,但他们可能会转向更通用和标准的API,与当前的HTML5视频兼容,但在此之前,我希望我的答案能帮助您