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 ?>&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=ffffff&fullscreen=1&autoplay=0&loop=0" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id=<?php echo $vimeo_id ?>&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=ffffff&fullscreen=1&autoplay=0&loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" FlashVars="api=1" width="320" height="160"></embed>
</object>
最佳答案
终于做到了。所以我想分享:
<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&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=ffffff&fullscreen=1&autoplay=0&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。您可以像往常一样在文档的头部进行此操作。我这样做只是因为我的应用程序的一些要求。
关于javascript - 有人可以提供一个 vimeo 简单 api 工作示例(使用标准嵌入对象,而不是 froogaloop)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965007/