按ID获取OpenTok流

时间:2014-06-17 13:20:19

标签: opentok

我正在创建一个应用程序,我希望在另一个页面上显示特定的流。将有一个包含所有流(订阅)的页面和一个将在整个屏幕上显示SPECIFIC流的页面。

  1. 将所选流的streamID发送到数据库。
  2. 在另一页上,获取数据库中最后添加的streamID
  3. 按ID获取信息流并在页面上显示
  4. 我前两步工作,最后一步是问题。我不知何故需要通过给定的streamId获取流对象。这可能吗?还有其他方法可以达到这个目的吗?

2 个答案:

答案 0 :(得分:1)

我不知道这是否是正确的方法,但您可以在数组中添加所有流对象:

var streamContainer = [];
session.on("streamCreated", streamCreatedHandler);

streamCreatedHandler = function(e) {
    streamContainer.push(e.stream)
}

当你的ID被取来取消订阅当前时,迭代数组并订阅新流:

for(var i = 0; i < streamContainer.length; i++) {
    if(streamContainer[i].id == dbStreamId) {
        session.subscribe(streamContainer[i], 'DOMELEMENT', {options});
    }
}

答案 1 :(得分:0)

您甚至可能不需要数据库来处理您要执行的操作。只需将两个页面(特定流和所有流)连接到同一个sessionId。您可以将streamId作为参数放在您的网址中:?streamId = 1343-thneue ...

在您的streamCreated事件中,只需使用您的url streamId检查回调函数中的stream.streamId。如果它们匹配,则在该流对象上调用session.subscribe。