好的,我完全卡住了.我真的希望那里有人可能有使用
Vimeo’s Froogaloop API加载Vimeo视频的经验.
我似乎无法抓住“准备好”的事件.
Froogaloop:
<script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
我的剧本:
$.getJSON('http://www.vimeo.com/api/oembed.json?url=' + encodeURIComponent('http://vimeo.com/27027307') + '&width=300&callback=?',function(data){ $('#video-container').html(data.html); //puts an iframe embed from vimeo's json $('#video-container iframe').ready(function(){ player = document.querySelectorAll('iframe')[0]; $f(player).addEvent('ready',function(id){ console.log('success'); }); }); });
视频加载正常.这是我在控制台中收到的消息:
Uncaught TypeError: Cannot read property 'ready' of undefined
我需要使用事件监听器来检测暂停等.我看到了this post,但不幸的是,主要区别在于我是通过JSON动态加载的.此外,Vimeo有一个working example的Froogaloop在行动,但没有与jQuery.
提前致谢!!!
解决方法
编辑(2014年8月):我最近写了一个
jQuery Vimeo plugin,它基本上更优雅地解决了这个问题.但解决方案是,如果你是硬编码,这是如下:
加载Vimeo视频时,您必须在URL中包含查询字符串& api = 1.这允许您进行API事件调用.如果您要加载多个视频,Vimeo还需要& player_id = SOME_ID,这需要匹配它加载的iframe上的id(或者在我的情况下,使用jQuery在加载JSON后将其添加到iframe,因为我是动态创建的.)
我失去了半天.这是我的最终代码出来的,如果它对任何试图动态加载Vimeo视频的人都有帮助.
使用Vimeo的Froogaloop框架
<script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
我的js
var videoData = [ { 'title':'The Farm','id':'farmvideo','videoURL':'http://vimeo.com/27027307' }]; $.getJSON('http://www.vimeo.com/api/oembed.json?url=' + encodeURIComponent(videoData[0]['videoURL']) + '&api=1&player_id='+ videoData[0]['id'] +'&width=300&callback=?',function(data){ $('#video-container').html(data.html); //puts an iframe embed from vimeo's json $('#video-container iframe').load(function(){ player = document.querySelectorAll('iframe')[0]; $('#video-container iframe').attr('id',videoData[0]['id']); $f(player).addEvent('ready',function(id){ var vimeoVideo = $f(id); console.log('success'); }); }); });