2013-07-10 18 views
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可見性切換時,事情似乎更好。

回答

2

不幸的是,使用最新版本時,發佈者被隱藏時會發生這種情況。如果你仍然想隱藏它,現在最好的選擇是使它成爲1x1像素,並將它絕對定位在屏幕的-1,-1。

相關問題