import { IInternals, IWorkerVideoReceiver, IVideoReceiverMessage, IQualityConfig } from '../../type/index'; declare class Quality { currentInternals: IInternals; nextInternals: IInternals; private bytesReceivedSecond; private bytesReceivedTotalSecond; private bytesSentSecond; private bytesSentTotalSecond; private packetsSentSecondSum; private packetsSentLostSecondSum; private packetsReceivedSecondSum; private packetsReceivedLostSecondSum; private audioPacketsReceivedSecondSum; private audioPacketsReceivedLostSecondSum; private videoCodec; private audioCodec; private bytesSent; private bytesReceived; private config; private currentLogInterval; private currentReportInterval; private networkType; private localOuterIP; private localInternalIP; private localPort; private remoteIP; private remotePort; private currentRoundTripTime; private senderRoundTripTime; private cacheCandidatePair; private onMessage; constructor(onMessage: (eventData: any) => void); /** * 设置Quality配置 * * @param { IQualityConfig } config - Quality模块配置 */ setConfig(config: IQualityConfig): void; /** * 重置默认数据 */ private initInternals; /** * 第一步:处理视频接收器数据 * * @param { IWorkerVideoReceiver[] } senderStatsList - 原始质量数据 */ statsVideoReceiver(data: IVideoReceiverMessage): void; /** * 第二步:处理音频Audio接收器数据 * * @param { IWorkerVideoReceiver[] } senderStatsList - 原始质量数据 */ statsAudioReceiver(receiverList: IWorkerVideoReceiver[]): void; /** * 第三步:处理音频/视频发送器数据 * * @param { IWorkerVideoReceiver[] } senderStatsList - 原始质量数据 */ statsSender(senderStatsList: IWorkerVideoReceiver[]): void; /** * 第四步:处理协商网络信息 * * @param { IWorkerVideoReceiver[] } senderStatsList - 原始质量数据 */ statsCandidate(data: any): void; /** * 更新候选对信息 * 包含:availableOutgoingBitrate、bytesSent、bytesReceived、currentRoundTripTime等信息 * * @param { any } report - 候选对信息 */ private updateCandidatePair; /** * 通过Worker发送最终的质量统计数据 */ private sendInternals; /** * 计算丢包率 * * @param { number } sum - 包总数 * @param { number } lost - 丢失包的数量 * @returns { number } - 丢包率 */ private getLost; /** * 获取sender的发送数据 * * @param { any[] } statsList - RTCStatsReport字典里面所有的统计数据 * @param { IStreamConfig } streamConfig - 流配置 * @returns { ISender } - 自定义统计数据内容 */ private getSenderStatus; /** * 获取视频接收质量数据 * * @param { any[] } statsList - RTCStatsReport字典里面所有的统计数据 * @param { ILayout } layoutItem layout布局数据 * @returns { IReceiver } 接收端的统计数据 * @returns { IReceiver } */ private getReceiverStatus; /** * 计算音频接收质量数据 * * @param { any[] } statsList - RTCStatsReport字典里面所有的统计数据 * @param { string } trackId - 轨道ID * @returns { IReceiver } */ private getReceiverAudioTrackStatus; /** * 计算音量值, 显示0-100 * * @param { number } audioLevel - 音量数据 * @returns { number } */ private calcAudioLevel; /** * 更新本地候选信息 * * @param { any } report - 本地候选信息 */ private updateLocalCandidate; /** * 更新远端候选信息 * * @param { any } report - 远端候选信息 */ private updateRemoteCandidate; /** * 计算速率 * * @private * @param { RTCStatsReport } report 上一次RTCStatsReport值 * @param { string } accumulativeMetric key * @param { string } samplesMetric timeLong * @param { number } bitsRate bite转换值 * @param { number } timeRatio 事件单位 * @param { any } dataOrigin 上一次的数据 */ private rateBytesCalculator; } export default Quality;