Запрос видеочата Tokbox

Я разрабатываю веб-сайт с использованием видеочата Tokbox, мне нужно запустить таймер, если оба пользователя подключены и видны ли их видео.

Я использую приведенный ниже код, и если кто-либо из пользователей подключился, он вызывает функцию start_countdown.

 session.on('streamCreated', function(event) {
    event.streams.forEach(function(stream) {
      if(stream.connection.connectionId != session.connection.connectionId) {
        // subscribe(stream);
        console.log("New stream in the session: " + event);
        // console.log(event);
        // console.log(stream);
        // start_countdown();
      }
    });
  });

но мне нужно вызвать функцию обратного отсчета, если оба пользователя предоставляют доступ к своему видео. Может ли кто-нибудь помочь в этом.


person shyamkarthick    schedule 27.10.2014    source источник


Ответы (1)


Первая идея, которую нужно понять, заключается в том, что, поскольку вы делаете это в клиентском коде, каждый участник будет иметь собственное значение для обратного отсчета, поскольку оба браузера независимо запускают таймер. Это, вероятно, хорошо, если вы просто пытаетесь отобразить время, в течение которого оба пользователя были подключены (или остались) в пользовательском интерфейсе. Но если вместо этого вы пытаетесь поддерживать одни истинные часы, этот подход, вероятно, не лучший.

Затем в OpenTok событие streamCreated запускается из сеанса, когда удаленный поток становится доступным. Издатель также запускает событие streamCreated, когда начинается отправка локального потока (после того, как локальный пользователь предоставляет доступ). Если вы знаете, что в сеансе будет только 2 пользователя, вы можете узнать, когда оба пользователя присоединились, прослушивая оба этих события. Ниже приведен пример:

// Initialize flags
var publishing = false;
var subscribing = false;

// TODO: create a publisher (either using session.publish() or OT.initPublisher()) and publish a stream after the session has connected

// Listen to the events
session.on('streamCreated', function(event) {
  // event.stream will always be a remote stream so the connection comparison is unnecessary
  // TODO: subscribe to the stream
  subscribing = true;
  // Check if both criteria have been met
  checkStartCountdown();
});

publisher.on('streamCreated', function(event) {
  publishing = true;
  // Check if both criteria have been met
  checkStartCountdown();
});

function checkStartCountdown() {
  if (publishing && subscribing) {
    // TODO: start_countdown is the function as you described in your question
    start_countdown();
  }
}
person Ankur    schedule 27.10.2014