2
每当我允许摄像头访问chrome作为建立一个多方或p2p会议的一部分,我期待得到一个streamCreated通知不是通过。我的相机打开,页面的“谷歌浏览器渲染器”达到100%的CPU使用率。当我暂停流的执行时,我发现执行在TB.min.js深处。下面是我的代码的相关部分看起来像:没有得到streamCreated事件,页面达到100%的CPU使用率
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可见性切换时,事情似乎更好。