当视频暂停时停止setInterval (Youtube播放器)

Stop setInterval when video is paused (Youtube player)

本文关键字:Youtube 播放器 setInterval 视频 暂停      更新时间:2023-09-26

我做这个问题有点困难。我使用youtube api在我的网站上集成视频。

要控制时间,我需要使用setInterval函数来获取当前时间。setInterval每100毫秒轮询一次。唯一的问题是,如果你暂停,或停止视频,setInterval继续轮询每100毫秒,他永远不会停止。

我真的不知道用我的代码停止它,我看到了clearInterval的基本例子,但代码更复杂。我做了一个活生生的例子,播放视频,你会在输出控制台看到问题。

http://jsbin.com/pazamihi/1/edit?html, js、控制台、输出

问题示例:

http://i.gyazo.com/be10ae615d28b8502783975e216fad54.png

我认为解决方案并不那么棘手。我首先将mytimer添加到全局作用域:

var mytimer; //declare variable mytimer in global scope for later usage
function onPlayerStateChange(event) {
...

在onPlayerStateChange()函数中有一个包含//Video has paused的else条件。将该行替换为

clearTimeout(mytimer);