#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 JCCallMediaConfig::generateByMode ( Mode  mode)
static

根据模式生成配置参数

可通过此方法生成 JCCallMediaConfig 对象,需要在调用 call 方法发起呼叫前,通过 updateMediaConfig 方法设置媒体参数

参数
mode参数模式,参见:
返回
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

Mode JCCallMediaConfig::mode

配置模式

默认为 Mode360P

◆ 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

是否影响本端视频请求分辨率,默认为影响

这里举个例子,有假设条件:

  1. 本端默认请求是640*360的分辨率
  2. 本端屏幕分辨率为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: 关闭

该类的文档由以下文件生成:
最后更新时间: 2023/11/7 09:38:09