Не получает событие streamCreated, страница переходит на 100% загрузку ЦП

Всякий раз, когда я разрешаю доступ к веб-камере в Chrome как часть настройки многосторонней или p2p-конференции, я ожидаю получить уведомление streamCreated, которое не приходит. Моя камера включается, и «обработчик Google Chrome» для страницы переходит на 100% загрузку ЦП. Когда я приостанавливаю выполнение потока, я обнаруживаю, что выполнение находится где-то глубоко внутри TB.min.js. Вот как выглядят соответствующие части моего кода:

void meetingInProgress(info) {
   var session = TB.initSession(info.sessionId);
   session.connect(info.apiKey, info.token);

   session.addEventListener("sessionConnected", function(e) {
      console.log("Connected to session");

      subscribeToStreams(session, e.streams);
      session.publish("selfview", { name: name });
   });

   session.addEventListener("streamCreated", function(e) {
      console.log("New stream");
      subscribeToStreams(session, e.streams);
   });
}

var subscribeToStreams = function(session, streams) {
   var selfId = session.connection.connectionId;

   console.log('Subscribing to streams, self id:', selfId);
   console.log('No. of streams:', _.size(streams));

   _.forEach(streams, function(s) {
      console.log('Stream id: ', s.connection.connectionId);
      if (s.connection.connectionId == selfId) {
         console.log('Toggling');
         $("#selfview").toggle();
      }
      else
         session.subscribe(s, addViewport(), { width: 640, height: 480 });

   });

   console.log('Done subscribing to streams...');
}

Мне кажется, что если элемент div издателя скрыт, возникает проблема с получением события streamCreated. Я надеялся показать панель div издателя только тогда, когда пользователь действительно одобряет использование камеры. Когда я отключаю это переключение видимости div, кажется, что все работает лучше.


person songz    schedule 10.07.2013    source источник


Ответы (1)


К сожалению, в последней версии это произойдет, когда издатель скрыт. Если вы все еще хотите скрыть его, лучшим вариантом на данный момент будет сделать его размером 1x1 пиксель и расположить его абсолютно на -1, -1 экрана.

person Shivam Thapar    schedule 10.07.2013