javascript - 如果我检测到窗口模糊并暂停视频,VIMEO 嵌入播放器的行为会很奇怪
问题描述
我嵌入了 vimeo 播放器,需要在窗口模糊时自动暂停。
我正在使用当前的 VIEMO SDK API ( https://player.vimeo.com/api/player.js )
所以我的代码如下
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var myWindow = window;
player.on('play', function(data) {
console.log("Playing...");
myWindow.focus();
myWindow.onblur = function() {
player.pause();
console.log("You gone...");
};
});
当用户单击活动窗口时,这可以完美地工作(例如:更改浏览器选项卡,或者浏览器失去焦点)
但最大的问题是开始播放视频后。当用户单击嵌入播放器内的“暂停”按钮(或单击任何想要暂停的地方)时。视频不会“暂停,它似乎会暂停很短的一段时间,然后再继续播放!经过多次尝试,我仍然无法解决这个问题。
我试图为 pause 命令设置一个小的延迟:
setTimeout(function(){ player.pause();}, 300);
这有点帮助,但有时视频仍会继续播放。
而且我还尝试制作一个外部的“暂停”按钮,然后这个“按钮”会正常运行,它可以真正暂停播放视频而没有任何问题。但是我真的不想放一个外部按钮来暂停视频,这会使界面变得丑陋。
我制作了一个 codepen 页面来重现此问题,如下所示 https://codepen.io/kit-leong/pen/PoZWZEj
有人能给我一些关于这些的想法吗?谢谢
解决方案
推荐阅读
- google-cloud-platform - 如何在请求中向 Google Cloud Functions 发送服务帐户令牌
- c# - 如何使用 Revit 2018 打开和激活 BIM 360 文档?
- c - 为什么 PLL 不锁定?我的时钟配置是否正确?
- android - React Native OkHttpUtils.java 使用或覆盖了已弃用的 API。在 react-native-ssl-pinning
- node.js - Redis 在生产环境中使用 Node.js
- javascript - ODOO:如何通过调用没有 action_type 按钮的 Javascript 事件来触发 do_action
- javascript - 如何向我的 v-data-table 组件的 Application 列添加超链接?
- c++ - 如何找到多维 std::array 的大小?
- javascript - 仅在数组长度更改时如何使用效果?
- php - 如何执行依赖于项目类的PHP脚本?