很长一段时间以来,我一直在寻找一个简单的答案。我搜索了许多网站和示例,但我仍然不明白getStats()如何提供所需的数据。不幸的是,这些东西仍然没有被很好地记录。
我只是想读取类似 - 数据包丢失 -收到的位 -已发送 -frameRate
我对WebRTC还是很陌生,所以请原谅我。我已经能够看到chrome的webrtc内部介绍。
假设我有我的对象
peerConnection
我现在如何获得这些数字?例如,我能够读取连接状态:
peerConnection.IceConnectionState
,它“开箱即用”,我可以看到连接状态。
当我记录以下内容时:
console.log(peerConnection.getStats());
然后我得到了一个奇怪的物体,我根本看不懂它,也不知道如何使用它。
然后,我在某个地方读取了我必须通过的视频轨道(例如),以便getStats()知道正在查看其统计信息的对象。我做了类似的事情:
track = stream.getVideoTracks()[0]; console.log(peerConnection.getStats(track));
它再次返回一个对象,但是这次又返回了一个。同样,不知道如何处理它。
测量getStats()中的其他数据有多困难?谁能给我一个非常简单的示例,从对象peerConnection开始?真令人沮丧...:-/
答案 0 :(得分:0)
this answer处的示例具有一堆与getStats相关的代码,用于转储整个结果对象。 getStats方法不是同步的,它返回一个Promise,该Promise使用Map对象进行解析。然后,您可以使用forEach循环迭代该地图对象,并查找所需的信息。
https://webrtc.github.io/samples/src/content/peerconnection/constraints/中描述了不同类型的统计报告(检查type属性)及其成员。