javascript - 有人可以提供一个 vimeo 简单 api 工作示例(使用标准嵌入对象,而不是 froogaloop)吗?

标签 javascript api events vimeo ready

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>

最佳答案

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

<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。您可以像往常一样在文档的头部进行此操作。我这样做只是因为我的应用程序的一些要求。

关于javascript - 有人可以提供一个 vimeo 简单 api 工作示例(使用标准嵌入对象,而不是 froogaloop)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965007/

相关文章:

java - 开发和调试 NetLogo 扩展的正确工作流程是什么

python - Python : Get songs Lyrics from genius - Error

javascript - 我如何在 jQuery 中监听点击并按住?

javascript - JQuery UI 选项卡 - 居中

api - 使用 RESTful API 在应用程序中存储 'shared' 项 MongoDB

javascript - 使用 Jest 测试 Angular 时出现 "Unexpected token import"

c# 如何在屏幕/显示器关闭或打开电源时获取事件?

c# - 有没有办法对事件进行断言?

javascript - 如何正确导出从 NodeJS 中的 API 调用检索到的值

javascript - 文本区域不会根据预填充值自动调整大小