如何衡量嵌入式Vimeo视频的监听时长?

时间:2015-07-08 04:03:36

标签: javascript vimeo vimeo-api

我的网页上嵌入了Vimeo视频,我想在用户观看视频10秒后录制Google Analytics事件。有没有办法衡量视频的观看时间? 作为参考,玩家使用: player.js - / * VimeoPlayer - v2.7.1 - 2015-06-26 * /

2 个答案:

答案 0 :(得分:1)

vimeo API的playProgess事件确实包含seconds属性。

所以你可以要求听这个事件,检查这个属性是否超过10个。

function postMsg(id){
  var msg = {method:"addEventListener", value: 'playProgress'};
  var iframe = document.getElementById(id), cW;
  if(iframe) cW = iframe.contentWindow;
  if(!cW){setTimeout(function(){postMsg(id)}, 200); return;}
  cW.postMessage(JSON.stringify(msg), '*');
  }

var messageListener = function(e){
    if (!(/^https?:\/\/player.vimeo.com/).test(e.origin))
        return false;
    var evt = JSON.parse(e.data);
    if(evt.event==='ready') postMsg(evt.player_id);
    if(evt.event==='playProgress') onPlayProgress(evt.data);
    }

function onPlayProgress(data) {
    if(data.seconds > 10) doSomething();
    }

window.addEventListener('message', messageListener, false);
iframe.src="http://player.vimeo.com/video/theVideoId?api=1&player_id="+iframe.id;

jsfiddle

答案 1 :(得分:0)

<video>个元素emit events。如果您的播放器使用<video>,您可以为timeupdate个事件添加事件监听器,或者监听play / pause个事件并自行处理时间。