RtcStats
通话相关的统计信息。
class RtcStats { const RtcStats( {this.duration, this.txBytes, this.rxBytes, this.txAudioBytes, this.txVideoBytes, this.rxAudioBytes, this.rxVideoBytes, this.txKBitRate, this.rxKBitRate, this.rxAudioKBitRate, this.txAudioKBitRate, this.rxVideoKBitRate, this.txVideoKBitRate, this.lastmileDelay, this.userCount, this.cpuAppUsage, this.cpuTotalUsage, this.gatewayRtt, this.memoryAppUsageRatio, this.memoryTotalUsageRatio, this.memoryAppUsageInKbytes, this.connectTimeMs, this.firstAudioPacketDuration, this.firstVideoPacketDuration, this.firstVideoKeyFramePacketDuration, this.packetsBeforeFirstKeyFramePacket, this.firstAudioPacketDurationAfterUnmute, this.firstVideoPacketDurationAfterUnmute, this.firstVideoKeyFramePacketDurationAfterUnmute, this.firstVideoKeyFrameDecodedDurationAfterUnmute, this.firstVideoKeyFrameRenderedDurationAfterUnmute, this.txPacketLossRate, this.rxPacketLossRate}); @JsonKey(name: 'duration') final int? duration; @JsonKey(name: 'txBytes') final int? txBytes; @JsonKey(name: 'rxBytes') final int? rxBytes; @JsonKey(name: 'txAudioBytes') final int? txAudioBytes; @JsonKey(name: 'txVideoBytes') final int? txVideoBytes; @JsonKey(name: 'rxAudioBytes') final int? rxAudioBytes; @JsonKey(name: 'rxVideoBytes') final int? rxVideoBytes; @JsonKey(name: 'txKBitRate') final int? txKBitRate; @JsonKey(name: 'rxKBitRate') final int? rxKBitRate; @JsonKey(name: 'rxAudioKBitRate') final int? rxAudioKBitRate; @JsonKey(name: 'txAudioKBitRate') final int? txAudioKBitRate; @JsonKey(name: 'rxVideoKBitRate') final int? rxVideoKBitRate; @JsonKey(name: 'txVideoKBitRate') final int? txVideoKBitRate; @JsonKey(name: 'lastmileDelay') final int? lastmileDelay; @JsonKey(name: 'userCount') final int? userCount; @JsonKey(name: 'cpuAppUsage') final double? cpuAppUsage; @JsonKey(name: 'cpuTotalUsage') final double? cpuTotalUsage; @JsonKey(name: 'gatewayRtt') final int? gatewayRtt; @JsonKey(name: 'memoryAppUsageRatio') final double? memoryAppUsageRatio; @JsonKey(name: 'memoryTotalUsageRatio') final double? memoryTotalUsageRatio; @JsonKey(name: 'memoryAppUsageInKbytes') final int? memoryAppUsageInKbytes; @JsonKey(name: 'connectTimeMs') final int? connectTimeMs; @JsonKey(name: 'firstAudioPacketDuration') final int? firstAudioPacketDuration; @JsonKey(name: 'firstVideoPacketDuration') final int? firstVideoPacketDuration; @JsonKey(name: 'firstVideoKeyFramePacketDuration') final int? firstVideoKeyFramePacketDuration; @JsonKey(name: 'packetsBeforeFirstKeyFramePacket') final int? packetsBeforeFirstKeyFramePacket; @JsonKey(name: 'firstAudioPacketDurationAfterUnmute') final int? firstAudioPacketDurationAfterUnmute; @JsonKey(name: 'firstVideoPacketDurationAfterUnmute') final int? firstVideoPacketDurationAfterUnmute; @JsonKey(name: 'firstVideoKeyFramePacketDurationAfterUnmute') final int? firstVideoKeyFramePacketDurationAfterUnmute; @JsonKey(name: 'firstVideoKeyFrameDecodedDurationAfterUnmute') final int? firstVideoKeyFrameDecodedDurationAfterUnmute; @JsonKey(name: 'firstVideoKeyFrameRenderedDurationAfterUnmute') final int? firstVideoKeyFrameRenderedDurationAfterUnmute; @JsonKey(name: 'txPacketLossRate') final int? txPacketLossRate; @JsonKey(name: 'rxPacketLossRate') final int? rxPacketLossRate; factory RtcStats.fromJson(Map<String, dynamic> json) => _$RtcStatsFromJson(json); Map<String, dynamic> toJson() => _$RtcStatsToJson(this); }
属性
- duration
- 本地用户通话时长(秒),累计值。
- txBytes
- 发送字节数(bytes)。
- rxBytes
- 接收字节数(bytes)。
- txAudioBytes
- 发送音频字节数(bytes),累计值。
- txVideoBytes
- 发送视频字节数(bytes),累计值。
- rxAudioBytes
- 接收音频字节数(bytes),累计值。
- rxVideoBytes
- 接收视频字节数(bytes),累计值。
- txKBitRate
- 发送码率(Kbps)。
- rxKBitRate
- 接收码率(Kbps)。
- rxAudioKBitRate
- 音频接收码率 (Kbps)。
- txAudioKBitRate
- 音频包的发送码率 (Kbps)。
- rxVideoKBitRate
- 视频接收码率 (Kbps)。
- txVideoKBitRate
- 视频发送码率 (Kbps)。
- lastmileDelay
- 客户端-接入服务器延时 (毫秒)。
- txPacketLossRate
- 使用抗丢包技术前,客户端上行发送到服务器丢包率 (%)。
- rxPacketLossRate
- 使用抗丢包技术前,服务器下行发送到客户端丢包率 (%)。
- userCount
- 当前频道内的用户人数。
- cpuAppUsage
- 当前 App 的 CPU 使用率 (%)。
注意:
- onLeaveChannel 回调中报告的 cpuAppUsage 恒为 0。
- 自 Android 8.1 起,因系统限制,你可能无法通过该属性获取 CPU 使用率。
- cpuTotalUsage
-
当前系统的 CPU 使用率 (%)。
对于 Windows 平台,在多核环境中,该成员指多核 CPU 的平均使用率。 计算方式为 (100 - 任务管理中显示的系统空闲进程 CPU)/100。
注意:- onLeaveChannel 回调中报告的 cpuTotalUsage 恒为 0。
- connectTimeMs
- 从开始建立连接到成功连接的时间(毫秒)。如报告 0,则表示无效。
- gatewayRtt
- 客户端到本地路由器的往返时延 (ms)。
注: 在 Android 平台上,如需获取 gatewayRtt,请确保已在项目
AndroidManifest.xml
文件的</application>
后面添加android.permission.ACCESS_WIFI_STATE
权限。 - memoryAppUsageRatio
-
当前 App 的内存占比 (%)。
注意: 该值仅作参考。受系统限制可能无法获取。 - memoryTotalUsageRatio
-
当前系统的内存占比 (%)。
注意: 该值仅作参考。受系统限制可能无法获取。 - memoryAppUsageInKbytes
-
当前 App 的内存大小 (KB)。
注意: 该值仅作参考。受系统限制可能无法获取。