Facebook嵌入式视频无法点击播放

时间:2018-04-07 08:07:35

标签: javascript jquery facebook video-streaming

我在我的帖子中嵌入了facebook视频的问题。我的客户希望我遵循这种方法:https://medium.com/@BenBillups/facebook-video-embeds-that-actually-work-57037f8cdcf3

我已经完成了除PHP代码之外的所有部分,因为我的客户并不需要这样做。现在发生了什么。页面加载时,播放按钮似乎开始播放视频。点击它工作得很好。它播放视频但仅限于桌面。点击事件会在手机和平​​板电脑上触发。但它并没有启动视频。 请查看https://candylish.com/mix-and-match-swirl-cookies/并查看手机。你会看到差异。 简而言之,您可以在移动设备中点击两次以启动视频。 请帮我解决这个问题。 谢谢:)

1 个答案:

答案 0 :(得分:0)

我认为您只是处理移动浏览器一般不愿意开始播放视频,因为他们无法确定它是否与用户交互直接相关(因此可能由用户自愿触发)。

//Autoplay
FB.Event.subscribe('xfbml.ready', function(msg) {
    if (msg.type === 'video') {
        msg.instance.play();
    }
});

此代码等待其中一个SDK事件触发,然后尝试调用播放方法,准确引入阻止这种情况的异步/分离,因为这样的技术经常用于恶意方式。

  

简而言之,您可以在移动设备中点击两次以启动视频。

第二次点击是"一个完全不同的动物" ...它发生在(现在)嵌入式社交的原生播放按钮上插入。此时此处不再涉及其他脚本,此点击是直接用户交互,触发视频播放,因此可以使用。这并没有嵌套到任何异步或回调中,而是直接 click =>触发游戏。

我认为你不会发现任何使用这种技术的例子,这会有不同的作用。

移动浏览器在自动播放页面加载(!)视频时更加优雅,如果这些视频不包含音频轨道或嵌入默认情况下静音。我不认为Facebook提供后者作为移动开始的选项(data-autoplay属性为桌面做,但记录在移动设备上不起作用) - 所以最多你可以尝试使用Facebook视频开始时是沉默的;但除此之外,我不确定这个限制是什么。当它实际上被解除时甚至适用于此,它可能也不会满足您的客户的要求。

我开始将此作为评论键入,但除此之外它现在已经有点长了,在这种情况下我认为它无法完成实际上只是答案,即使它可能不是令人满意的答案。