javascript - Vimeo API 结束时触发多个事件

标签 javascript vimeo vimeo-api

我正在使用Vimeo API ,并且文档指出,要捕获视频的结尾,请使用以下代码

player.on('ended', function(data) {
  // `data` is an object containing properties specific to that event
});

效果很好,但是当视频结束时,vimeo 视频播放器会停止视频(显然),但将进度设置回 0.00。

因此,pauseseeked 事件也会被触发,这意味着当视频结束时,触发的事件如下所示

enter image description here

它触发 pauseseeked 事件的原因也是有道理的,但它远非理想。我想发送一个 ajax 请求来保存进度,这意味着如果我监听 ending 事件,它将触发 3 次。

有人以前遇到过这个问题并找到解决方法吗?

最佳答案

据我所知,没有办法直接使用 API 来解决这个问题,我解决这个问题的方法是观察进度,检查视频何时接近完成并删除绑定(bind)并将进度设置为完成。

videoPlayer.on('progress', (data) => {
//If the player percent is over 0.95, updateProgress to 100% and remove all listeners
    if(data.percent > 0.95){
        //Manually set the data to 100
        data.percent = 1;
        //Remove the listeners
        videoPlayer.off('pause');
        videoPlayer.off('seeked');
        videoPlayer.off('progress');
        //Update the progress to be 100
        updateProgress(data, 'seeked');
    }
})

无论如何,这对于我的场景来说是一个更好的解决方法,因为我们的视频末尾有制作人员名单,而用户最终在制作人员名单期间点击了视频,这意味着该视频在技术上从未被标记为完整。

关于javascript - Vimeo API 结束时触发多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55909542/

相关文章:

javascript - Google 图表中每个日期的多个数据点

javascript - 使用 getUserMedia 访问设备摄像头

vimeo - 如何将我的 Vimeo 视频嵌入我自己的网站并只允许经过身份验证的用户观看?

react-native - 如何在没有 webview 的情况下将 vimeo 播放器嵌入 react-native?

java - 将视频上传到 Android 中的 Vimeo

javascript - 如何在 React 应用程序中分离路由

javascript - 删除 Magento 2 中的默认产品库

html - 如何在chrome的嵌入式视频播放器顶部放置div

javascript - Froogaloop2 Vimeo 视频播放器 - 全屏启动视频

php - 使用正则表达式 preg_match 获取 id video vimeo