Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript与Vimeo.com上的Vimeo播放器交互_Javascript_Video_Google Chrome Extension_Vimeo_Froogaloop - Fatal编程技术网

使用Javascript与Vimeo.com上的Vimeo播放器交互

使用Javascript与Vimeo.com上的Vimeo播放器交互,javascript,video,google-chrome-extension,vimeo,froogaloop,Javascript,Video,Google Chrome Extension,Vimeo,Froogaloop,我已经成功地使用该库来监控各种站点上的嵌入式Vimeo视频播放器(用于的功能) 我想在vimeo.com上做同样的事情,但是vimeo.com页面上的视频播放器没有嵌入iFrame中,因此Froogaloop无法与它们交互 有谁能告诉我如何获取当前播放时间并为(非iframed)视频连接播放/暂停事件侦听器吗?经过一些讨论后,我想出了以下基本解决方案: // Once the vimeo.com player <object> is ready: // find vimeo pla

我已经成功地使用该库来监控各种站点上的嵌入式Vimeo视频播放器(用于的功能)

我想在vimeo.com上做同样的事情,但是vimeo.com页面上的视频播放器没有嵌入iFrame中,因此Froogaloop无法与它们交互

有谁能告诉我如何获取当前播放时间并为(非iframed)视频连接播放/暂停事件侦听器吗?

经过一些讨论后,我想出了以下基本解决方案:

// Once the vimeo.com player <object> is ready:

// find vimeo player(s)
var vimeoPagePlayers = document.querySelectorAll('object[type*=flash][data*=moogaloop]');
if (vimeoPagePlayers.length == 0) {
    return;
}

// attach event listeners to player(s)
for (var i = 0; i < vimeoPagePlayers.length; i++) {
    var player = vimeoPagePlayers[i];
    // sometimes .api_addEventListener is not available immediately after
    // the <object> element is created; we do not account for this here
    player.api_addEventListener('onProgress', 'onVimeoPageProgress');
    player.api_addEventListener('onPause', 'onVimeoPagePause');
}

function onVimeoPagePause() {
    // video has been paused or has completed
}

function onVimeoPageProgress(data) {
    // video is playing
    var seconds;
    if (typeof(data) == 'number') {
        // on vimeo.com homepage, data is a number (float)
        // equal to current video position in seconds
        seconds = data;
    }
    else {
        // on vimeo.com/* pages, data is a hash
        // of values { seconds, percent, duration }
        seconds = data.seconds;
    }

    // do something with seconds value
}
//一旦vimeo.com播放器准备就绪:
//查找vimeo播放器
var vimeoPagePlayers=document.querySelectorAll('object[type*=flash][data*=moogaloop]');
if(vimeoPagePlayers.length==0){
返回;
}
//将事件侦听器附加到播放器
对于(变量i=0;i
这可能不适用于vimeo.com上的HTML5模式视频(未经测试)

当vimeo.com页面通过DOM操作将现有播放器替换为另一个播放器时,它也不起作用。我相信这些情况可以通过类似的方法来处理。

经过一段时间后,我提出了以下基本解决方案:

// Once the vimeo.com player <object> is ready:

// find vimeo player(s)
var vimeoPagePlayers = document.querySelectorAll('object[type*=flash][data*=moogaloop]');
if (vimeoPagePlayers.length == 0) {
    return;
}

// attach event listeners to player(s)
for (var i = 0; i < vimeoPagePlayers.length; i++) {
    var player = vimeoPagePlayers[i];
    // sometimes .api_addEventListener is not available immediately after
    // the <object> element is created; we do not account for this here
    player.api_addEventListener('onProgress', 'onVimeoPageProgress');
    player.api_addEventListener('onPause', 'onVimeoPagePause');
}

function onVimeoPagePause() {
    // video has been paused or has completed
}

function onVimeoPageProgress(data) {
    // video is playing
    var seconds;
    if (typeof(data) == 'number') {
        // on vimeo.com homepage, data is a number (float)
        // equal to current video position in seconds
        seconds = data;
    }
    else {
        // on vimeo.com/* pages, data is a hash
        // of values { seconds, percent, duration }
        seconds = data.seconds;
    }

    // do something with seconds value
}
//一旦vimeo.com播放器准备就绪:
//查找vimeo播放器
var vimeoPagePlayers=document.querySelectorAll('object[type*=flash][data*=moogaloop]');
if(vimeoPagePlayers.length==0){
返回;
}
//将事件侦听器附加到播放器
对于(变量i=0;i
这可能不适用于vimeo.com上的HTML5模式视频(未经测试)

当vimeo.com页面通过DOM操作将现有播放器替换为另一个播放器时,它也不起作用。我相信这些情况可以通过类似于