在特定应用场景下,开发者需要获取到参会者音视频数据以支持进行数据分析或显示。通过平台API,开发者不仅可以获取到网络状态数据,同时还可以获取到参会者的音视频数据,数据详情根据可参考各平台文档详情。
通过INemoSDKCallbacks.onNetworkIndicatorLevel回调,该方法参数level代表了当前的网络质量,分别为1、2、3、4个等级,代表了差、中、良、优。此信息可在UI界面上呈现给用户,如果网络非常慢的情况下,可以通过关闭视频的方式来保证会议质量。
通话中可以通过INemoSDK.GetStatistics接口随时获取通话中音视频详细数据,其中包括带宽、丢包率、往返时延、抖动等参数,其次也可以获取到网络信息、加密方式等信息。具体参数见如下示例:
//lvl值 1~4分别代表代表了差、中、良、优
void OnNetworkIndicatorLevel(int lvl);
// 获取呼叫中媒体和网络的统计信息
SDKStatistics GetStatistics();
// 呼叫中统计信息
public class SDKStatistics
{
public MediaInfo people; // 与会者媒体信息
public MediaInfo content; // 内容共享媒体信息
public NetworkInfo networkInfo; // 网络状况信息
public class VideoRxInfo
{
public string codecType; // 编码器类型 codec type
public string disName; // 显示名称 display name
public int actBw; // 实际带宽 actual bandwidth (in kbps)
public int frameRate; // 帧率 fps
public string resolution; // 分辨率
}
public class VideoTxInfo
{
public string codecType; // 编码器类型
public int actBw;
public int frameRate;
public string resolution;
}
public class AudioInfo
{
public string codecType; // 编码器类型
public string disName; // 显示名称 display name
public int actBw;
}
public class MediaInfo
{
public AudioInfo[] audioRxInfo; // 下行音频数据 receiving audio streams
public AudioInfo[] audioTxInfo; // 上行音频数据 transmitting audio streams
public VideoRxInfo[] videoRxInfo; // 下行视频数据 receiving video streams
public VideoTxInfo[] videoTxInfo; // 上行视频数据 transmitting video streams
}
public class NetworkInfo // average value during every 2 seconds
{
public int rtt; // 往返时间 round trip time (in milliseconds)
public int rxDetectBw; // 统计下行带宽 detected downlink bandwidth ( in kbps)
public int rxJitter; // 统计下行抖动时间 jitters in receiving streams ( milliseconds)
public int rxLost; // 统计下行丢包数 packets lost in receiving streams (percentage)
public int txDetectBw; // 统计上行带宽 detected uplink bandwidth ( in kbps)
public int txJitter; // 统计上行抖动时间 jitters in transmitting streams
public int txLost; // 统计上行丢包数 packets lost in transmitting streams
}
}