WebRTC:如何简单地使用getStats()?

时间:2018-07-10 22:54:09

标签: javascript webrtc getusermedia

很长一段时间以来,我一直在寻找一个简单的答案。我搜索了许多网站和示例,但我仍然不明白getStats()如何提供所需的数据。不幸的是,这些东西仍然没有被很好地记录。

我只是想读取类似 - 数据包丢失 -收到的位 -已发送 -frameRate

我对WebRTC还是很陌生,所以请原谅我。我已经能够看到chrome的webrtc内部介绍。

假设我有我的对象

  

peerConnection

我现在如何获得这些数字?例如,我能够读取连接状态:

  

peerConnection.IceConnectionState

,它“开箱即用”,我可以看到连接状态。

当我记录以下内容时:

  

console.log(peerConnection.getStats());

然后我得到了一个奇怪的物体,我根本看不懂它,也不知道如何使用它。

然后,我在某个地方读取了我必须通过的视频轨道(例如),以便getStats()知道正在查看其统计信息的对象。我做了类似的事情:

  

track = stream.getVideoTracks()[0];   console.log(peerConnection.getStats(track));

它再次返回一个对象,但是这次又返回了一个。同样,不知道如何处理它。

测量getStats()中的其他数据有多困难?谁能给我一个非常简单的示例,从对象peerConnection开始?真令人沮丧...:-/

1 个答案:

答案 0 :(得分:0)

this answer处的示例具有一堆与getStats相关的代码,用于转储整个结果对象。 getStats方法不是同步的,它返回一个Promise,该Promise使用Map对象进行解析。然后,您可以使用forEach循环迭代该地图对象,并查找所需的信息。

https://webrtc.github.io/samples/src/content/peerconnection/constraints/中描述了不同类型的统计报告(检查type属性)及其成员。