javascript - 当 YouTube API iFrame 命中超过 75% 的视频时执行一次函数
问题描述
我试图在通过 YouTube API 播放 iFrame 时运行一个函数,但它执行的次数太多。我试图用 bool 标记该函数无济于事。我已经坚持了几个小时。请帮忙,大声笑。
如何限制此功能在视频播放时仅运行一次?
var completedMajority = false;
function onPlayerStateChange(event, tID, tName, isThereAnExam, time) {
if (event.data == 1) { // playing
myTimer = setInterval( function(){
var time;
time = player.getCurrentTime();
minutes = parseInt(time / 60, 10);
seconds = parseInt(time % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
timeDuration = localStorage['timeDuration'];
majorityOfVid = timeDuration / 4 * 3;
console.log(time);
if (!completedMajority && time >= majorityOfVid) {
completedMajority = true;
majorityOfModuleCompleted(isLive, baseURL)
}
console.log(completedMajority);
$('#thisIsTheFinalCountdown').text(minutes + ":" + seconds);
}, 100);
}
else { // not playing
clearInterval(myTimer);
}
解决方案
整个函数,在你的 first 之前if
,应该包含在:
if (!completedMajority) {
[...]
}
推荐阅读
- python - 即使满足包要求,也解决anaconda enviroment.yml中的ResolvePackageNotFound错误?
- python - XML/KML 格式不正确
- python - 如何将终端输出显示到 PyQt 中的文本框
- http - 从 net/http.Request.RemoteAddr 获取 IP 地址的最简洁方法是什么
- solr - solrj 是否支持使用 _nest_path_ 字段索引嵌套文档?
- citations - 将引文标签更改为每位作者仅包含一到两个字母
- rust - 如何在线程中借值而不是移动
- opencv - Visual Studio 2017 自动链接依赖的依赖
- tfs - 是否可以在 TFS 关闭时编辑代码
- python - 如何在 Google Colab 中进行文本到语音的转换?