2

Vimeo 文档很差。我无法触发简单的 api 就绪事件。我研究了文档,但不清楚。我在论坛上发帖,但答案不清楚。如果我使用普通的嵌入标签(在这种情况下我必须这样做),它应该会自动触发 ready 事件并监听默认的 vimeo_player_loaded() 函数。它没有。或者至少它似乎没有这样做。

关于 ready 事件,文档明确指出:

“当播放器准备好接受命令时自动触发。在收到此事件之前不要尝试添加侦听器或调用函数。使用 Flash 嵌入代码时,播放器将尝试调用 vimeo_player_loaded()。”

所以????

顺便说一句,我的代码(视频正确嵌入但准备好的回调没有被执行):

<script>
function vimeo_player_loaded(id){
//doesn't log anything because ready event seems to not fire
console.log(document.getElementById(id).api_play);
}
</script>

<object width="320" height="160">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="flashvars" value="api=1" />
<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=<?php echo $vimeo_id ?>&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id=<?php echo $vimeo_id ?>&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" FlashVars="api=1" width="320" height="160"></embed>
</object>
4

2 回答 2

4

终于做到了。所以我想分享:

<div style="width:320px; height:180px" id="flashbox-30861939"></div>
<script>
     //vimeo_player_loaded gets automatically called my the vimeo player
     //when it is ready
     function vimeo_player_loaded(id){
         //id is automatically passed
         var swfobj = document.getElementById(id);
         swfobj.api_play();//it works!!!
     }

     var swf = swfobject.embedSWF("http://vimeo.com/moogaloop.swf?clip_id=30861939&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1&amp;autoplay=0&amp;loop=0", "flashbox-30861939", "320", "180", "9.0.0","expressInstall.swf", { api:1, player_id:"flashbox-30861939" }, { allowfullscreen:true, allowscriptaccess:'always' });
</script>

所以,最后我使用了 swfobject(请在调用上面的代码之前在页面中包含 swfobject.js..)。

在传递正确的 ID 时应该非常小心。另外,请注意 flash 变量:

{ api:1, player_id:"flashbox-30861939" }

和参数:

{ allowfullscreen:true, allowscriptaccess:'always' }

希望能帮助到你。顺便说一句,当然,在 id 之后调用 swfobject.embedSWF 不是强制性的。您可以像往常一样在文档的头部执行此操作。我在那里这样做只是因为我的应用程序的一些要求。

于 2011-12-01T17:06:19.987 回答
1

此外,当将 Moogaloop 与 JQuery(我猜是 Mootools)一起使用时,请确保该vimeo_video_loaded()方法位于脚本部分之外document.ready()否则它将不会被调用。

于 2012-05-21T11:34:00.523 回答