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