【发布时间】:2016-08-17 00:04:43
【问题描述】:
我在我的网页上嵌入了一个实时 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 事件永远不会触发。这是有害的,因为您需要响应,在本例中为“msg”,才能订阅 Facebook 事件。
我尝试改用“xfmbl.rendered”,但触发事件时收到的 msg 只是“1”。
我还尝试将事件处理程序放置在播放器本身执行的事件上,而不是使用 msg.instance,但由于跨源策略问题(Facebook 播放器位于 iFrame 内),这是不可能的。
这篇文章 => Unmute facebook live video 也在问一个与 xfbml.ready not fire 相关的类似问题。
感谢您的帮助。
【问题讨论】:
-
我猜现在这个问题已经解决了,至少它可以像预期的那样工作:shoepimper.com/fb.html
标签: javascript facebook facebook-javascript-sdk