使用Jquery停止Vimeo视频

3

我需要停止一个使用新oembed api(通用播放器)嵌入的Vimeo视频,但是当我尝试添加事件时,我会得到以下错误:

Uncaught TypeError: Object #<an HTMLIFrameElement> has no method 'addEvent'

但是我不知道为什么会出现这个错误,我已经添加了jQuery和frogaloop API,也给iframe添加了id,但它仍然无法工作 :(
完整的代码在这里: http://tv.bisaccia.info
4个回答

2

Eli,请编辑您的帖子。正如Joe所说,您的信息是部分错误的。虽然postMessage用于跨域通信,但它是通过调用“Froogaloop.init();”添加的DOM方法来实现的。

is_embed_iframe = _this.iframe_pattern.test(cur_frame.getAttribute('src')); 

if (is_embed_iframe) {
        cur_frame.api = _that.api;
        cur_frame.get = _that.get;
        cur_frame.addEvent = _that.addEvent;
    }

注意:您需要从Vimeo网站获取froogaloop.js(或min变体)。
在调用init()之前,请确保设置iFrame“src”,否则froogaloop将无法执行。

0
根据迈克的建议,调用:
Froogaloop.init();

让控制 API 生效。在我的情况下:

<iframe id="player_1" src="http://player.vimeo.com/video/26859570?js_api=1&amp;js_swf_id=player_1&amp;title=0&amp;byline=0&amp;portrait=0" width="620" height="354" frameborder="0"></iframe>
<script>
    $(document).ready(function() {
        Froogaloop.init();
        $("#player_1").moogaloop({
            load: function(element) {
                $("#segment1").click(function() { element.moogaloop('seekTo', "7"); });
            }
        });
    });
</script>

奇怪... Moogaloop 的作者演示页面在没有 init() 调用的情况下也可以工作。不管怎样,对我来说可行。
感谢您的时间!

0

这不是正确的答案,但可能适用于您的情况,就像对我有帮助一样。我只是想在关闭包含它的DOM元素时停止播放我的Vimeo视频。我折叠了其容器,这使其在视觉上隐藏,但音频继续播放并且浏览器资源被不必要地占用。

现在我所做的是简单地将iframe存储在变量中,从DOM中删除它,然后立即替换它。我尚未跨浏览器测试,仅限于Chrome和Safari Mobile的最新版本。

var container = $("#VimeoContainer");
var iframe = container.find("iframe");
iframe.remove();
container.append(iframe);

再次强调,Froogaloop确实是最好的选择,但我过去曾遇到过一些问题,所以在这种情况下,我正在寻找一些简单的东西。显然,您可以使用相同的结果而不使用JQuery来完成此操作。


-2

不行。

  • 没有 DOM 的 addEvent 方法。
  • 你没有跨域访问 Vimeo 的权限,所以不能让 JavaScript 与 iframe 的文档或抽象视图进行交互。

如果你想通过 JavaScript 与 Vimeo 进行交互,你需要让他们实现一个也接受你的域名的 postMessage API。


啊,好的:( 我以为它能工作是因为我在这里读到了:http://github.com/vimeo/froogaloop/blob/master/README(还有这里http://vimeo.com/api/docs/moogaloop#universal)不过还是谢谢你的回复 :) - patrick
1
你为什么要说“你不能”呢?这完全是误导。 - Paul Nelligan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接