cop*_*ake 2 javascript youtube api node.js
Hello Stack Overflow社区,
我是一个相当新手的编码员,但我有一个我设计的项目,每天看起来越来越复杂,我不知道从哪里开始.
从Synchtube和Phonoblaster获取灵感,我希望为我的网站创建一些内容,让访问者可以实时,同步地观看我策划的YouTube视频和播放列表.
因为我希望能够将它放在我自己网站的上下文中,所以我不能使用已经执行此操作的上面列出的服务 - 所以我想弄清楚如何自己动手.
关于Stack Overflow和其他博客的一些关于这个主题的文章: HERE 和HERE.
因为我仍然认为自己是一名新手程序员,而且我在Google和Stack上发现的很多信息往往超过1或2年,我仍然不确定从哪里开始或者这些信息是否过时.具体来说,我应该学习哪些语言和工具.
从我到目前为止收集的内容来看,Javascript,Node.JS和YouTube API等内容将成为它的关键.我以前没有使用过任何这些,但是有兴趣看看其他有经验的编码员是否会有自己的建议或想法,他们可以指出我.
感谢您抽出时间阅读这篇文章!希望很快能听到你们中的一些人:)
非常感谢.
部分听起来你需要来自Youtube的直播.你可以在这里找到更多信息.https://support.google.com/youtube/bin/answer.py?hl=en&answer=2474026
如果你能做到这一点,那么在任意数量的用户之间同步游戏就像在浏览器中嵌入常规的youtube嵌入流一样简单.
回顾过去,如果您想在任意数量的用户之间同步视频播放,第一个大问题是学习如何在视频上设置时间.幸运的是,使用hashbang#t =秒很容易.
例如:http://www.youtube.com/watch?v = m38RdUGqBPM&feature = g-high-rec#t = 619s将在619秒开始播放这段HuskyStarcraft视频.
下一步是让一些后端服务器跟踪当前时间.带有Socket.io的Node.js 非常容易安装.Socket.io是一个很棒的库,可以通过长轮询等方式优雅地处理来自Web套接字的并发连接,即使在非常老的浏览器上也能正常工作.请注意,甚至不需要websockets,但它将是最现代和最全面的方法.否则它的黑客和东西.
可行的一种方法如下.
User1访问您的网站并开始播放视频.页面上的脚本向服务器发送XHR请求,其中显示"视频在时间X开始".然后将X存储为开始时间.
此时,你可以去2条路线.您可以使用Youtube API创建一个客户端脚本来轮询视频并每秒获取其当前状态.如果状态或时间发生更改,请将另一个请求发送回服务器以更新状态.
另一个简单的路线是为User2 +加载页面,然后发送XHR请求,询问视频播放时间.服务器发回User1的开始时间之间的差异,然后客户端脚本在youtube播放器上为User2 +设置't'hashbang.这可让您同步开始时间,但如果有任何用户暂停或回放视频,则这些状态不会更新.后续页面刷新可能会这样做.
整个应用程序的复杂性取决于您想要具备的要求.如果它只是同步的开始时间,那么路线#2应该足够好.不需要套接字,使用jQuery或直接javascript很容易.
如果您需要真正同步的体验,任何用户都可以开始/停止/暂停/快进/快退视频,那么您正在寻找使用已建立的库解决方案或编写自己的解决方案.
对不起,这个答案有点开放,但你的问题也是如此.=)