2016-07-08 74 views
6

我試圖獲取webRTC應用程序的統計數據來測量音頻/視頻流的帶​​寬。 我檢查了這個question,我發現它非常有用;然而,當我嘗試使用它,我得到WebRTC:使用getStats()

TypeError: Not enough arguments to RTCPeerConnection.getStats. 

我認爲這是因爲在2016年東西的WebRTC被改變,現在有mediaStreamTracks;但是,我建立了沒有mediaStreamTracks的項目,我不知道如何改變這個函數來讓它工作。

你有什麼想法嗎? 感謝您的支持!

UPDATE:

我的電話是

peer.pc.onaddstream = function(event) { 
     peer.remoteVideoEl.setAttribute("id", event.stream.id); 
     attachMediaStream(peer.remoteVideoEl, event.stream); 
     remoteVideosContainer.appendChild(peer.remoteVideoEl); 
     getStats(peer.pc); 
}; 

和getStats()是相同的這個link在章N.7。

+0

張貼一些代碼。特別是你調用'getStats()' – KRONWALLED

+2

'getStats()'需要'mediaStreamTrack'作爲參數,如果我記得。 –

+0

更新的問題! P.s:如果我調用'peer.getStats(null,function(...))',怎麼辦? – Diego

回答

6

了一段時間,因爲我用的WebRTC,問題則是,Chrome和Firefox中實現不同的看法(相信他們仍然這樣做不同)

火狐:

的WebRTC統計標籤是about:webrtc

peerConnection.getStats(null).then(function(stats){... // returns a promise 

Chrome:

webrtc stats選項卡是chrome://webrtc-internals/

規避這些跨瀏覽器的問題
peerConnection.getStats(function(stats){ // pass a callback function 

一個方法是使用adapter.js

+2

是的Firefox實現它[規格](https://w3c.github.io/webrtc-stats),Chrome不。看[這個問題](https://github.com/webrtc/adapter/issues/5)。 - 是的,adapter.js有助於調用約定,但請注意,它不會重命名特定於Chrome的統計信息鍵[yet](https://github.com/webrtc/adapter/issues/5)。 – jib

+0

非常感謝,它的作品! – Diego