在特定应用场景下,开发者需要获取到网络及参会者音视频数据以支持进行数据分析或显示。
通过平台 API,开发者不仅可以获取到网络状态数据,包括带宽、丢包率、往返时延、抖动等,同时还可以获取到参会者的音视频数据,数据详情根据可参考各平台文档详情。
通话中可以通过 getStatistics 接口随时获取通话中音视频详细数据,其中包括带宽、丢包率、往返时延、抖动等参数,其次也可以获取到网络信息、加密方式等信息。如下图为 Demo 实现效果: 接口返回的具体的参数列举如下:
Network:
"networkInfo":{
"rtt":52, //往返时延
"rxDetectBw":2783, //接收带宽
"rxJitter":0, //接收抖动
"rxLost":0, //接收丢包率
"txDetectBw":827, //发送带宽
"txJitter":8, //发送抖动
"txLost":0 //发送丢包率
People 或者 Content:
"people":{
"audioRxInfo":[
{
"codecType":"Opus", //Codec
"disName":"5byg6JmO5a2QLeilv+WuieeglOWPkQ==", //名称
"actBw":53, //带宽
}
],
"audioTxInfo":[
...
],
"videoRxInfo":[
{
"codecType":"H264SVCHigh",
"disName":"5byg6JmO5a2QLeilv+WuieeglOWPkQ==",
"resolution":"180P", //分辨率
"actBw":325,
"frameRate":14, //帧率
}
],
"videoTxInfo":[
....
]
EncryptType:
"encryptType":{
"cAEncrypt":"", //Content音频加密类型
"cVEncrypt":"AES256", //Content视频加密类型
"pAEncrypt":"AES256", //People音频加密类型
"pVEncrypt":"AES256" //People视频加密类型
音视频数据获取:
XYMediaStatisticsViewModel.ets
/**
* 获取并设置网络质量数据
*/
setNetWorkStatistics() {
const instance = XYRTCEngine.getInstance();
const statistics = instance.getStatistics();
console.log("========statistics", JSON.stringify(statistics));
this.xyCallTooBarModel.network = statistics.network;
this.xyCallTooBarModel.peopleStatistics.audioRxInfo = statistics.people.audioRxInfo;
this.xyCallTooBarModel.peopleStatistics.audioTxInfo = statistics.people.audioTxInfo;
this.xyCallTooBarModel.peopleStatistics.videoRxInfo = statistics.people.videoRxInfo;
this.xyCallTooBarModel.peopleStatistics.videoTxInfo = statistics.people.videoTxInfo;
this.xyCallTooBarModel.contentStatistics.audioRxInfo = statistics.content.audioRxInfo;
this.xyCallTooBarModel.contentStatistics.audioTxInfo = statistics.content.audioTxInfo;
this.xyCallTooBarModel.contentStatistics.videoRxInfo = statistics.content.videoRxInfo;
this.xyCallTooBarModel.contentStatistics.videoTxInfo = statistics.content.videoTxInfo;
}