直播数据统计
流状态数据上报
音视频库会每秒一次上报直播流的详细数据,上层依据此数据可进行提示,状态判断等处理。SDK 提供了 RCRTCStatusReportDelegate 代理可以取得直播流的详细数据 RCRTCStatusForm。
- (void)didReportStatusForm:(RCRTCStatusForm*)form;
RCRTCStatisticalForm
说明
属性 | 类型 | 说明 |
---|---|---|
cpuUsage | float | CPU使用率,取值: 0 ~ 100 |
cpuUsageOfOS | float | 系统CPU使用率,取值: 0 ~ 100 |
totalRecvBitRate | float | 接收的所有下行码率,单位: kbps |
totalSendBitRate | float | 发送的所有上行码率,单位: kbps |
networkType | NSString | 当前使用的网络类型 |
rtt | NSInteger | 往返时间,单位: 毫秒 |
ipAddress | NSString | IP地址 |
availableReceiveBandwidth | float | 可接收带宽 |
availableSendBandwidth | float | 可发送带宽 |
sendStats | NSArray<RCRTCStreamStat * > | 发送轨道数据,见下方 RCRTCStreamStat 说明 |
recvStats | NSArray<RCRTCStreamStat * > | 接收轨道数据,见下方 RCRTCStreamStat 说明 |
-
RCRTCStreamStat
说明属性 类型 说明 trackId NSString 音/视频流ID audioLevel NSInteger 音频流中的音量,视频流中为0 bitRate float 码率,单位: kbps frameHeight NSInteger 视频帧高度,音频流中为 -1 frameWidth NSInteger 视频帧宽度,音频流中为 -1 mediaType NSString 媒体类型,音频为: audio,视频为: video packetLoss float 发送丢包率,取值: 0 ~ 1 rtt NSInteger 往返时间,单位: 毫秒 frameRate NSInteger 视频帧率,音频流中为 -1 jitterReceived NSInteger 网络抖动,单位: 毫秒 codecName NSString 音/视频编解码器 state NSInteger 流是否可用状态,随麦克风开关变化,1 可用,2 不可用,-1 无法确定
直播合流音量上报
从 SDK 5.1.11 版本开始,SDK 支持在直播模式下实时上报音频合流的声音状态,您可单独获取每个主播的音量。
例如当前音频合流由 A B C 三个主播音频流产生,此时 A 在发声,SDK 会通过 didReportLiveAudioStatus:
回调 audioStatus
数组,里面包含 A 主播的 audioLevel
。
- (void)didReportLiveAudioStatus:(NSArray<RCRTCLiveAudioStatus *> *)audioStatus;
参数 | 类型 | 说明 |
---|---|---|
audioStatus | NSArray<RCRTCLiveAudioStatus *> * | 汇报音频合流数组,见下方 RCRTCLiveAduioStatus 说明 |
RCRTCLiveAduioStatus
说明:
属性 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户Id |
streamId | NSString | 流Id |
audioLevel | NSInteger | 音量大小,0 - 9表示音量高低 |