如何在多个客户端上同步播放YouTube视频?

我希望了解如何构建一个web应用程序,允许多个用户在他们的计算机上同步查看同一个YouTube视频。例如,synchtube.com或watch2gether.com

我正在寻找一种可以使用诸如PHPjQueryApache等常用技术实现的简单方法。我目前正在考虑轮询(或comet长轮询,但这需要更复杂的服务器设置,我希望避免),类似于Ajax聊天应用程序的实现方式,即客户端不断地检查服务器以查看正在播放的视频。然而,我怀疑这里会有延迟问题,所以视频不会完全同步。我想不出更好的办法了

对于其他开发人员社区,非常感谢对方法或代码片段的任何帮助

下面是一个使用WebSocket和node.js保持视频同步的示例:
http://softwareas.com/video-sync-with-websocket-and-node

我知道你不想使用这项技术,这只是展示你能做什么和如何做的一个很好的起点。

既然您希望使用PHP并保持简单,那么最好的解决方案是将实时通信层(用于保持用户视频同步)外包给托管服务,如Pusher,我为他工作。这意味着您不需要维护持久连接,您可以使用Pusher在用户/客户端之间传递有关视频状态的实时事件

如果你想使用YouTube视频,而HTML5并不总是可用,那么你需要使用播放器API。我看不到类似的timeupdated事件(在HTML5视频中提供),因此您可能需要定期检查视频时间(请参阅播放器状态API部分。您可以注册状态更改事件,以便知道用户何时暂停、停止视频等

@rob-w的评论为使用YouTube API提供了一些很好的见解

注意:这可能会成为一篇非常有趣的博客文章,因此如果您感兴趣,请告诉我,我会看看我能做些什么。

发表评论