channel,多频道应用应按频道保存结果。公开监测类型位于 cn.seastart.rtc.monitoring.api。
本地快照与 FY 服务端报告有不同的数据来源和等级,不应混用。详细模型及数值单位见 媒体质量。
监听本地周期快照
snapshot.timestamp、snapshot.networkQuality.timestamp 与 snapshot.mediaPlaybackExperience.timestamp 相同,单位为毫秒。间隔从采集及交付完成后开始计算,因此不是严格每 2 秒一次。没有有效样本时,网络或播放等级可能为 UNKNOWN,可空指标为 null。NetworkQuality 分别提供方向概览和逐轨结果;播放体验只评估本地接收的音视频连续性。网络差不必然等于播放卡顿,播放平滑也不表示画质清晰。
网络等级为 UNKNOWN、EXCELLENT、GOOD、POOR、BAD、LOST。LOST 只表示预期传输轨道的 ICE 进入 FAILED;主动关闭返回 UNKNOWN。视频播放等级为 UNKNOWN、SMOOTH、DEGRADED、FROZEN;音频为 UNKNOWN、CLEAR、DEGRADED、INTERRUPTED。逐轨网络分数 score 为 0~100,无法评分时为 null,不代表播放体验分。
按需查询详细统计
getStats(),也不会推进网络或播放评估窗口。尚无可用采样或监测失效时返回 null;同一帧重复查询会得到独立副本。sampleTimestampMs 是采样完成时间;若快照回调后已有新采样,随后查询到的时间戳可能不同。组合两类结果时先核对 channel 和时间戳。逐轨 timestamp 来自 RTCStats,与顶层墙钟时间不同。
详细码率单位是 bps,RTT 和 jitter 为 ms,丢包率为 0~1;包数、字节数和帧数是累计量。null 表示不可得,真实测到的零保留为 0。无轨道时部分方向合计为 0,不能据此推断某条轨道有零值。
FY 服务端报告
STABLE 交付;SDK 不做业务去抖。report 同时包含两个方向的服务端统计。getMetric().qualityReport 也是 FY 的最近服务端报告,但它在该采样帧首次组装详细统计时读取,不能假设与某次服务端回调严格同步。WS 的 qualityReport 为 null。回调在 SDK 后台线程执行,更新 UI 前切到主线程。
处理弱网
先按频道、方向及轨道判断影响范围。可以用方向等级驱动状态展示,再用remoteTracks、localTracks 和播放列表定位受影响的轨道。提示或自动降级应由应用按业务场景设置持续时间与恢复条件;不要把一次 POOR 或 BAD 直接当作必须停止视频的信号。连接状态变化另见 RTCClientEvent。