8

我使用 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 的数据时遗漏了一些东西。任何帮助或指导将不胜感激。

4

0 回答 0