gpt4 book ai didi

javascript - 如何在没有 xfbml.ready 的情况下获取 Facebook 直播视频实例?

转载 作者:数据小太阳 更新时间:2023-10-29 04:21:16 25 4
gpt4 key购买 nike

我要在我的网页上嵌入一个实时 Facebook 视频,并且需要在视频上放置事件处理程序。例如,我想知道视频是否已暂停。

对于常规视频(非实时)视频,我可以通过使用 Facebook 文档中概述的方法订阅事件来完成此操作。以下是文档:https://developers.facebook.com/docs/plugins/embedded-video-player/api和我的示例代码:

FB.Event.subscribe('xfbml.ready', function (msg) {
if (msg.type === 'video') {
fplayer = msg.instance;
fplayer.subscribe('paused', facebookPauseEventHandler);
}
});

问题是,当嵌入实时视频而不是“点播”或有结尾的预录视频时,xfbml.ready 事件永远不会触发。这是有害的,因为您需要响应(在本例中为“消息”)才能订阅 Facebook 事件。

我试过使用“xfmbl.rendered”来代替,但事件触发时收到的消息只是“1”。

与使用 msg.instance 相比,我也曾尝试将事件处理程序置于播放器本身执行的事件上,但由于跨源策略问题(Facebook 播放器位于 iFrame 中),这是不可能的。

这篇文章 => Unmute facebook live video也在问一个与 xfbml.ready not firing 相关的类似问题。

感谢您的帮助。

最佳答案

FB.Event.subscribe('xfbml.ready'... 在 FB.XFBML.parse 上被调用,您可以在您的事件之前强制进行新的解析,仅在您的嵌入视频父级上解析,像这样:

FB.XFBML.parse(document.getElementById('my-embed-video-id').parentNode);
FB.Event.subscribe('xfbml.ready', function(msg) {
if(msg.type === 'video'){
//do something
}
});

关于javascript - 如何在没有 xfbml.ready 的情况下获取 Facebook 直播视频实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38986251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com