#include <JCCall.h>
Public 类型 | |
enum | AecMode { AecModeAec = EN_MTC_EC_AEC , AecModeOS = EN_MTC_EC_OS , AecModeAes = EN_MTC_EC_AES , AecModeFde = EN_MTC_EC_AEC_FDE , AecModeSde = EN_MTC_EC_AEC_SDE } |
enum | Mode { Mode360P , Mode720P , ModeIntelligentHardware , ModeIOT , ModeSip } |
Public 成员函数 | |
const char * | toString () |
JCCallMediaConfig () | |
静态 Public 成员函数 | |
static JCCallMediaConfig | generateByMode (Mode mode) |
Public 属性 | |
Mode | mode |
char | audioEnableCodecs [256] |
int | audioAecMode |
bool | audioArsEnable |
int | audioArsBitrateMin |
int | audioArsBitrateMax |
bool | audioRed |
bool | audioRxAnr |
bool | audioRtx |
bool | audioRxAgc |
bool | audioQosAec |
bool | audioQosAnr |
bool | audioQosAgc |
bool | audioQosVad |
int | audioPacketTime |
int | audioQosAgcGain |
char | videoEnableCodecs [256] |
int | videoResolutionRecvWidth |
int | videoResolutionRecvHeight |
int | videoResolutionSendWidth |
int | videoResolutionSendHeight |
int | videoBitrate |
int | videoSendFramerate |
bool | videoArsEnable |
int | videoArsBitrateMin |
int | videoArsBitrateMax |
int | videoArsFramerateMin |
int | videoArsFramerateMax |
bool | videoRedFec |
bool | videoRecvFullScreen |
bool | videoSmallNalu |
bool | videoResolutionControl |
int | heartbeatTime |
int | videoKeyPeriod |
详细描述
一对一通话媒体参数配置类,作为 updateMediaConfig 方法的入参使用
构造及析构函数说明
◆ JCCallMediaConfig()
JCCallMediaConfig::JCCallMediaConfig | ( | ) |
构造函数
成员函数说明
◆ generateByMode()
|
static |
根据模式生成配置参数
可通过此方法生成 JCCallMediaConfig 对象,需要在调用 call 方法发起呼叫前,通过 updateMediaConfig 方法设置媒体参数
- 参数
-
mode 参数模式,参见: - Mode360P : 360P
- Mode720P : 720P
- ModeIntelligentHardware : 智能硬件场景,比如会和手表通话等
- ModeIOT : 与asr,展讯等小系统互通
- 返回
- JCCallMediaConfig 对象,媒体配置参数
◆ toString()
const char * JCCallMediaConfig::toString | ( | ) |
配置字符串
- 返回
- 配置字符串
类成员变量说明
◆ audioAecMode
int JCCallMediaConfig::audioAecMode |
回声消除模式,默认为 AecModeAec , 参见:
- AecModeAec : 声学回声消除
- AecModeOS : 使用操作系统提供的声学回声消除功能
- AecModeAes : 声学回声抑制
- AecModeFde : 软件自适应声学回声消除,能适应更大延时
- AecModeSde : 软件自适应声学回声消除,追踪延迟精度高
◆ audioArsBitrateMax
int JCCallMediaConfig::audioArsBitrateMax |
音频最大码率,kb,默认值为75
◆ audioArsBitrateMin
int JCCallMediaConfig::audioArsBitrateMin |
音频最小码率,kb,默认值为20
◆ audioArsEnable
bool JCCallMediaConfig::audioArsEnable |
是否开启音频,默认开启
- true: 开启
- false: 关闭
◆ audioEnableCodecs
char JCCallMediaConfig::audioEnableCodecs[256] |
音频编解码
协商优先级按顺序排列, 每个编解码用";"间隔, 注意大小写,默认值为 "opus;AMR;G729"
◆ audioPacketTime
int JCCallMediaConfig::audioPacketTime |
音频打包时长,默认值为 20
◆ audioQosAec
bool JCCallMediaConfig::audioQosAec |
是否开启回声消除,默认开启
- true: 开启
- false: 关闭
◆ audioQosAgc
bool JCCallMediaConfig::audioQosAgc |
是否开启发送端声音自动增益控制,默认开启
- true: 开启
- false: 关闭
◆ audioQosAgcGain
int JCCallMediaConfig::audioQosAgcGain |
发送端声音自动增益控制强度,默认值为9
取值范围为[0,90],数值越大,增益强度越大。当 audioQosAgc 为 true 时有效
◆ audioQosAnr
bool JCCallMediaConfig::audioQosAnr |
是否开启发送端噪声抑制,默认开启
接收端声音噪声大,提高抑制等级。接收端声音小,可在不影响声音质量情况下降低抑制等级或者关闭抑制
- true: 开启
- false: 关闭
◆ audioQosVad
bool JCCallMediaConfig::audioQosVad |
是否开启静音检测,默认关闭
- true: 开启
- false: 关闭
◆ audioRed
bool JCCallMediaConfig::audioRed |
是否打开语音red抗丢包,默认开启
网络不稳定,一般选择打开
- true: 打开,能够增加payload码率
- false: 关闭,能力节省码率从而降低功耗
◆ audioRtx
bool JCCallMediaConfig::audioRtx |
是否开启rtx重传,默认关闭
同FEC、NACK一起用, 能够降低功耗。网络不稳定, 一般选择打开
- true: 打开
- false: 关闭
◆ audioRxAgc
bool JCCallMediaConfig::audioRxAgc |
是否打开接收端声音自动增益控制,默认关闭
接收端声音过大过小时, 可尝试打开
- true: 打开
- false: 关闭
◆ audioRxAnr
bool JCCallMediaConfig::audioRxAnr |
是否开启噪声抑制,默认关闭
一般接收端声音质量好可关闭噪声抑制, 减少声音dsp处理, 降低功耗
- true: 开启
- false: 关闭
◆ heartbeatTime
int JCCallMediaConfig::heartbeatTime |
心跳间隔,默认心跳间隔为30秒
取值范围为(0,3600)。比如本端设置了心跳间隔为 X 秒,那么对端在 3*X 秒内都没有收到本端的心跳时,对端将收到 onCallItemRemove 通话结束的回调
◆ mode
◆ videoArsBitrateMax
int JCCallMediaConfig::videoArsBitrateMax |
视频最大码率,kb,默认值为 1500
◆ videoArsBitrateMin
int JCCallMediaConfig::videoArsBitrateMin |
视频最小码率,kb,默认值为 50
◆ videoArsEnable
bool JCCallMediaConfig::videoArsEnable |
是否开启视频 ars,默认开启
- true: 开启
- false: 关闭
◆ videoArsFramerateMax
int JCCallMediaConfig::videoArsFramerateMax |
视频最大帧率,kb,默认值为 30
◆ videoArsFramerateMin
int JCCallMediaConfig::videoArsFramerateMin |
视频最小帧率,kb,默认值为 1
◆ videoBitrate
int JCCallMediaConfig::videoBitrate |
视频初始码率 kb,默认值为 800
◆ videoEnableCodecs
char JCCallMediaConfig::videoEnableCodecs[256] |
视频编解码,协商优先级按顺序排列,默认值为 "H264-SVC;H264;VP8"
◆ videoKeyPeriod
int JCCallMediaConfig::videoKeyPeriod |
视频关键帧间隔(毫秒),ModeIOT 下默认值为 5000
仅在 ModeIOT 模式下生效,其他模式下设置无效
◆ videoRecvFullScreen
bool JCCallMediaConfig::videoRecvFullScreen |
是否影响本端视频请求分辨率,默认为影响
这里举个例子,有假设条件:
- 本端默认请求是640*360的分辨率
- 本端屏幕分辨率为360*360
- 若此参数设置成 true:请求分辨率 360*360
- 若此参数设置成 false: 请求分辨率 640*360
- true: 影响
- false: 不影响
◆ videoRedFec
bool JCCallMediaConfig::videoRedFec |
是否开启rfc 2198 语音fec-red,默认开启
开启后可以增强抗丢包能力,会增加一倍的payload码率,不会增加包头。 比如Opus 55kbps增加一倍码率后,最终码率达到90kbps=55+35;Opus 10kbps增加一倍码率后,最终码率达到16kbps=10+6
- true: 开启
- false: 关闭
◆ videoResolutionControl
bool JCCallMediaConfig::videoResolutionControl |
是否开启分辨率控制,默认开启
- true: 开启, 分辨率随网络波动而变化
- false: 关闭, 固定分辨率
◆ videoResolutionRecvHeight
int JCCallMediaConfig::videoResolutionRecvHeight |
视频接收高,默认值为 360
◆ videoResolutionRecvWidth
int JCCallMediaConfig::videoResolutionRecvWidth |
视频接收宽,默认值值为 640
◆ videoResolutionSendHeight
int JCCallMediaConfig::videoResolutionSendHeight |
视频发送高,默认值为 360
◆ videoResolutionSendWidth
int JCCallMediaConfig::videoResolutionSendWidth |
视频发送宽,默认值值为 640
◆ videoSendFramerate
int JCCallMediaConfig::videoSendFramerate |
发送帧率,默认值为 24
◆ videoSmallNalu
bool JCCallMediaConfig::videoSmallNalu |
是否开启视频数据以SmallNalu方式打包,默认开启
开启后一个包打包的数据多,减少包头的码率,从而降低功耗
- true: 开启
- false: 关闭
该类的文档由以下文件生成:
- SDK/all/include/JCCall.h