【发布时间】:2012-01-15 10:09:32
【问题描述】:
我希望了解如何构建一个允许多个用户在他们的计算机上同步观看同一 YouTube 视频的网络应用。例如,synchtube.com 或 watch2gether.com
我正在寻找一种可以使用PHP、jQuery 和Apache 等常见技术实现的简单方法。我目前正在考虑轮询(或彗星长轮询,但这需要更复杂的服务器设置,我希望避免),类似于Ajax 聊天应用程序的实现方式 - 即客户端不断检查服务器以查看正在播放哪个视频。但是,我怀疑这里会有延迟问题,因此视频不会完全同步。我还想不出更好的方法。
非常感谢开发人员社区的任何有关方法或代码 sn-ps 的帮助!
【问题讨论】:
-
我唯一能想到的就是让每个用户都准备好选择。一切准备就绪后,将视频推送给所有人。我会研究使用 php 的 pub/sub 服务。我不确定您正在查看哪种浏览器支持,但我发现各种 websocket 技术对于 pub/sub 来说非常方便。大多数现代浏览器都支持。
-
使用服务器同步客户端。然后,使用 YouTube JavaScript 播放器 API 播放视频。请参阅this answer,了解一种简单易懂的视频播放方法。对于更复杂的调用,例如获取玩家的状态和事件,请参阅this answer。
-
即使所有用户都在同一时刻开始播放视频,但如果有些用户的连接速度较慢,只有在其他应用程序不使用它的某些应用程序时才能跟上视频流,会发生什么情况?带宽?您是否让所有客户都停下来,以免任何人落后?
标签: php jquery ajax youtube real-time