cn.seastart.rtc.monitoring.api 的公开监测模型。如何接收回调和查询数据,见 网络质量。旧版 cn.seastart.rtc.statistics.MediaMetric 的嵌套类型与 onMediaMetric 回调已移除;迁移时改用本页的顶层类型、onLocalQualitySnapshot 和 getMetric()。
LocalQualitySnapshot
两个子对象的
timestamp 与外层时间戳必须相等。快照不包含逐轨原始计数;需要详细统计时调用 getMetric()。
NetworkQuality、DirectionQuality 与 TrackQuality
NetworkQuality 包含 timestamp、uplink: DirectionQuality、downlink: DirectionQuality、localTracks: List<TrackQuality> 和 remoteTracks: List<TrackQuality>。无对应轨道时列表为空。
QualityLevel 为 UNKNOWN、EXCELLENT、GOOD、POOR、BAD、LOST;QualityConstraint 为 NONE、CPU、BANDWIDTH。QualityDirection 为 UPLINK、DOWNLINK。UNKNOWN 表示无可靠判定;LOST 仅表示预期传输轨道的 ICE 进入 FAILED。更多枚举见 枚举类型。
MediaPlaybackExperience
MediaPlaybackExperience 包含 timestamp、videoTracks: List<VideoTrackPlaybackExperience> 和 audioTracks: List<AudioTrackPlaybackExperience>,只描述本地下行播放连续性。
MediaMetric
RTCEngine.getMetric() 返回默认频道的 MediaMetric?,RTCChannel.getMetric() 返回指定频道的 MediaMetric?。结果是最近完成采样的副本;不可用时为 null。详细模型不提供网络或播放等级。
详细统计字段与单位
不存在的轨道不进入 map。无对应轨道时,部分合计为
0;已有轨道但原始计数或有效窗口不足时,相关测量为 null,不会把缺失伪装为实测零。多个轨道中任一组成值不可得时,该项合计为 null。详细方向丢包率按合计包数计算,快照方向 lossRate 则取可得单轨窗口丢包率最大值,因此两者可能不同。逐轨 timestamp 不能与 sampleTimestampMs 直接当作同一时钟比较。
ServerQualityReport 与 NetworkQualityChange
FY 的ServerQualityReport 含 timestamp、uplink: ServerQualityStats、downlink: ServerQualityStats。每个 ServerQualityStats 含 score(0~100)、level(excellent / good / poor / lost)、mos、loss(0~1)、rtt(ms)、jitter(ms)、packets、bitrate(kbps)、bytes。服务端数值沿后端契约透传,不套用本地统计单位。
NetworkQualityChange 含 direction: QualityDirection、previousLevel: String、currentLevel: String、trend: QualityTrend 和 report: ServerQualityReport。它只由 FY 服务端报告驱动,与本地 LocalQualitySnapshot 的评估相互独立。