我使用 getStats(RTCStatsCollectorCallback callback) API 来获取“发送比特率”和“接收比特率”值。
我面临两个问题:
1)。当会议中只有 1 个用户时,有时“发送的比特率”值会变得非常大(以 mbps 为单位)。
2)。当会议中只有 2 个(或更多)用户并且一个用户(不是主持人)共享他的屏幕时,返回的值波动太大(意味着有时它非常小,有时它非常大(以 mbps 为单位))。
peerConnection.getStats(new RTCStatsCollectorCallback() {
@Override
public void onStatsDelivered(RTCStatsReport rtcStatsReport) {
for (Map.Entry<String, RTCStats> e : rtcStatsReport.getStatsMap().entrySet()) {
if (e.getKey().startsWith("RTCInboundRTPAudioStream") ||
e.getKey().startsWith("RTCInboundRTPVideoStream")) {
String receivedBitrate = null;
if (e.getValue().getMembers().get("bytesReceived") != null) {
receivedBitrate = ("" +
e.getValue().getMembers().get("bytesReceived"));
}
}
if (e.getKey().startsWith("RTCOutboundRTPAudioStream") ||
e.getKey().startsWith("RTCOutboundRTPVideoStream")) {
String sentBitrate = null;
if (e.getValue().getMembers().get("bytesSent") != null) {
sentBitrate = ("" +
e.getValue().getMembers().get("bytesSent"));
}
}
}
}
}
我想我在使用新 getStats() API 的数据时遗漏了一些东西。任何帮助或指导将不胜感激。