【发布时间】:2015-09-07 20:14:05
【问题描述】:
我正在尝试创建一个协作点唱机作为学习 Meteor 的一个小项目,所以对于这个非常高级的菜鸟问题表示歉意。
我需要能够在多个客户端上调用 soundcloud SC.stream(请参阅 https://developers.soundcloud.com/docs/api/sdks#streaming)函数。所有客户正在查看的模板都绑定到一个看起来像这样的对象:
room: {
title: "roomname"
currentlyPlaying: {
trackName: "track name"
trackStreamURL: "http://soundcloud/12345"
}
}
我似乎无法找到一种方法,以便当客户(例如管理员)设置新的currentlyPlaying 以触发所有客户运行SC.stream 并开始新歌曲。
我只是不确定在这种情况下要使用什么正确的流星功能,所以我不是在寻找代码解决方案,只是在正确的方向上寻找一个点。
提前致谢。
【问题讨论】:
-
什么是 SC.stream?这段代码来自哪里?
-
对不起,重新阅读并意识到它是模棱两可的。它来自 Soundcloud API developers.soundcloud.com/docs/api/sdks#streaming
-
首先弄清楚如何播放一首歌曲。然后要在管理员更改当前播放的歌曲时更改它,您应该在自动运行上下文中使用反应变量,该变量将在歌曲的 url 更改时重新运行
-
太棒了@EliezerSteinbock 谢谢!我让它在实际启动 url 更改的客户端上工作,只需使用像
click .song这样的事件。所以对于每个其他客户,我应该使用类似docs.meteor.com/#/full/tracker_autorun 或docs.meteor.com/#/full/reactivevar 的东西吗? -
我认为您需要将数据存储在集合中。我认为这里不需要 ReactiveVar,但这是正确的想法。在下面发布了完整的答案。
标签: meteor