访问订户变量

时间:2015-09-27 22:36:16

标签: opentok tokbox

var subscriber;
subscriber = void 0;

getApiAndToken = function() {
  initializeSession();
};

initializeSession = function() {
  session = OT.initSession(apiKey, sessionId);
  session.on('streamCreated', function(event) {
    session.subscribe(event.stream, 'layout', {
      insertMode: 'append'
    });
    layout();
  });
};

(function() {
  var movingAvg;
  subscriber.setStyle('audioLevelDisplayMode', 'off');
  movingAvg = null;
  return subscriber.on('audioLevelUpdated', function(event) {
    var logLevel;
    if (movingAvg === null || movingAvg <= event.audioLevel) {
      movingAvg = event.audioLevel;
    } else {
      movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;
    }
    logLevel = Math.log(movingAvg) / Math.LN10 / 1.5 + 1;
    logLevel = Math.min(Math.max(logLevel, 0), 1);
    document.getElementById('subscriberMeter').value = logLevel;
    console.log(logLevel);
  });
});

嘿,我遇到的问题是我的session.subscribe没有连接到订阅者变量,我可以说这是首选,因为你想用opentok完成更高级的设置。

现在我基本上将创建的流会话添加到一个函数中。现在我想要做的是使会话订阅与订阅者变量相关,我也可以在当前代码中从中获取音频级别。

目前我

Uncaught TypeError: Cannot read property 'setStyle' of undefined

这是预期的,因为我在顶部设置为undefined。

1 个答案:

答案 0 :(得分:0)

session.subscribe()的返回值是Subscriber对象。所以你需要做的就是修改你调用这个方法的行来存储返回值:

subscriber = session.on('streamCreated', function(event) {
  session.subscribe(event.stream, 'layout', {
    insertMode: 'append'
  });
  layout();
});