Public 成员函数

String toString ()
 

静态 Public 成员函数

static MediaConfig generateByMode (@Mode int mode)
 

Public 属性

String audioEnableCodecs = "opus;AMR;G729"
 
boolean audioAecEnable = true
 
int audioAecMode = AEC_MODE_SDE
 
boolean audioArsEnable = true
 
int audioArsBitrateMin = 20
 
int audioArsBitrateMax = 75
 
boolean audioRed = true
 
boolean audioRxAnr = false
 
boolean audioRtx = false
 
boolean audioRxAgc = false
 
boolean audioQosAec = true
 
boolean audioQosAnr = true
 
boolean audioQosAgc = true
 
boolean audioQosVad = false
 
int audioPacketTime = 20
 
int audioQosAgcGain = 9
 
String videoEnableCodecs = "H264-SVC;H264;VP8;AV1"
 
int videoResolutionRecvWidth = 640
 
int videoResolutionRecvHeight = 360
 
int videoResolutionSendWidth = 640
 
int videoResolutionSendHeight = 360
 
int videoBitrate = 800
 
int videoSendFramerate = 24
 
boolean videoArsEnable = true
 
int videoArsBitrateMin = 50
 
int videoArsBitrateMax = 1500
 
int videoArsFramerateMin = 1
 
int videoArsFramerateMax = 30
 
boolean videoRedFec = true
 
boolean videoRecvFullScreen = true
 
boolean videoSmallNalu = true
 
boolean videoResolutionControl = true
 
int videoKeyPeriod = 0
 
int heartbeatTime = 30
 

静态 Public 属性

static final int AEC_MODE_AEC = MtcCallDb.EN_MTC_EC_AEC
 
static final int AEC_MODE_OS = MtcCallDb.EN_MTC_EC_OS
 
static final int AEC_MODE_AES = MtcCallDb.EN_MTC_EC_AES
 
static final int AEC_MODE_FDE = MtcCallDb.EN_MTC_EC_AEC_FDE
 
static final int AEC_MODE_SDE = MtcCallDb.EN_MTC_EC_AEC_SDE
 
static final int MODE_360P = 0
 
static final int MODE_720P = MODE_360P + 1
 
static final int MODE_INTELLIGENT_HARDWARE_SMALL = MODE_720P + 1
 
static final int MODE_INTELLIGENT_HARDWARE_LARGE = MODE_INTELLIGENT_HARDWARE_SMALL + 1
 
static final int MODE_IOT_LARGE = MODE_INTELLIGENT_HARDWARE_LARGE + 1
 
static final int MODE_IOT_SMALL = MODE_IOT_LARGE + 1
 
static final int MODE_SIP = MODE_IOT_SMALL + 1
 

Protected 属性

int mode = MODE_360P
 

详细描述

一对一通话媒体参数配置类,作为 updateMediaConfig 方法的入参使用

成员函数说明

◆ toString()

String com.juphoon.cloud.JCCall.MediaConfig.toString ( )
inline

打印一对一通话媒体参数配置字符串

返回
一对一通话媒体参数配置字符串

◆ generateByMode()

static MediaConfig com.juphoon.cloud.JCCall.MediaConfig.generateByMode ( @Mode int  mode)
inlinestatic

根据模式生成配置参数

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

参数
mode参数模式,参见:
返回
MediaConfig 对象,媒体配置参数

类成员变量说明

◆ AEC_MODE_AEC

final int com.juphoon.cloud.JCCall.MediaConfig.AEC_MODE_AEC = MtcCallDb.EN_MTC_EC_AEC
static

声学回声消除。支持在免提状态下的通话,对于iOS和Windows等性能较好的机型有效。

◆ AEC_MODE_OS

final int com.juphoon.cloud.JCCall.MediaConfig.AEC_MODE_OS = MtcCallDb.EN_MTC_EC_OS
static

使用操作系统提供的声学回声消除功能,支持在免提状态下的通话。对于多数iOS和Android等品牌手机有效,但部分机型可能无效。

◆ AEC_MODE_AES

final int com.juphoon.cloud.JCCall.MediaConfig.AEC_MODE_AES = MtcCallDb.EN_MTC_EC_AES
static

声学回声抑制,通过半双工方式实现回声抑制,通常不建议使用。

◆ AEC_MODE_FDE

final int com.juphoon.cloud.JCCall.MediaConfig.AEC_MODE_FDE = MtcCallDb.EN_MTC_EC_AEC_FDE
static

软件自适应声学回声消除,对于大多数所有机型有效。但计算量比AEC稍大一些。SDE追踪延迟精度高,FDE能适应更大的延迟。

◆ AEC_MODE_SDE

final int com.juphoon.cloud.JCCall.MediaConfig.AEC_MODE_SDE = MtcCallDb.EN_MTC_EC_AEC_SDE
static

软件自适应声学回声消除,对于大多数所有机型有效。但计算量比AEC稍大一些。SDE追踪延迟精度高,FDE能适应更大的延迟。

◆ MODE_360P

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_360P = 0
static

360P

◆ MODE_720P

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_720P = MODE_360P + 1
static

720P

◆ MODE_INTELLIGENT_HARDWARE_SMALL

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_INTELLIGENT_HARDWARE_SMALL = MODE_720P + 1
static

小屏智能设备

◆ MODE_INTELLIGENT_HARDWARE_LARGE

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_INTELLIGENT_HARDWARE_LARGE = MODE_INTELLIGENT_HARDWARE_SMALL + 1
static

大屏智能设备

◆ MODE_IOT_LARGE

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_IOT_LARGE = MODE_INTELLIGENT_HARDWARE_LARGE + 1
static

大屏设备(手机、平板)与asr,展讯等小系统互通

◆ MODE_IOT_SMALL

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_IOT_SMALL = MODE_IOT_LARGE + 1
static

小屏设备(手表)与asr,展讯等小系统互通

◆ MODE_SIP

final int com.juphoon.cloud.JCCall.MediaConfig.MODE_SIP = MODE_IOT_SMALL + 1
static

对接落地业务

此模式会关闭 srtp 加密以及部分落地业务不支持的协商配置

◆ audioEnableCodecs

String com.juphoon.cloud.JCCall.MediaConfig.audioEnableCodecs = "opus;AMR;G729"

音频编解码

协商优先级按顺序排列,每个编解码用";"间隔,注意大小写,默认值为 "opus;AMR;G729"

◆ audioAecEnable

boolean com.juphoon.cloud.JCCall.MediaConfig.audioAecEnable = true

是否开启回声消除,默认开启

  • true: 开启
  • false: 关闭

◆ audioAecMode

int com.juphoon.cloud.JCCall.MediaConfig.audioAecMode = AEC_MODE_SDE

回声消除模式,默认为 AEC_MODE_SDE ,参见:

◆ audioArsEnable

boolean com.juphoon.cloud.JCCall.MediaConfig.audioArsEnable = true

是否开启音频,默认开启

  • true: 开启
  • false: 关闭

◆ audioArsBitrateMin

int com.juphoon.cloud.JCCall.MediaConfig.audioArsBitrateMin = 20

音频最小码率 kb,默认值为 20

◆ audioArsBitrateMax

int com.juphoon.cloud.JCCall.MediaConfig.audioArsBitrateMax = 75

音频最大码率 kb,默认值为 75

◆ audioRed

boolean com.juphoon.cloud.JCCall.MediaConfig.audioRed = true

是否打开语音red抗丢包,默认开启

网络不稳定,一般选择打开

  • true: 打开,能够增加payload码率
  • false: 关闭,能力节省码率从而降低功耗

◆ audioRxAnr

boolean com.juphoon.cloud.JCCall.MediaConfig.audioRxAnr = false

是否开启噪声抑制,默认关闭

一般接收端声音质量好可关闭噪声抑制,减少声音dsp处理,降低功耗

  • true: 开启
  • false: 关闭

◆ audioRtx

boolean com.juphoon.cloud.JCCall.MediaConfig.audioRtx = false

是否开启rtx重传,默认关闭

同FEC、NACK一起用,能够降低功耗。网络不稳定,一般选择打开

  • true: 打开
  • false: 关闭

◆ audioRxAgc

boolean com.juphoon.cloud.JCCall.MediaConfig.audioRxAgc = false

是否打开接收端声音自动增益控制,默认关闭

接收端声音过大过小时,可尝试打开

  • true: 打开
  • false: 关闭

◆ audioQosAec

boolean com.juphoon.cloud.JCCall.MediaConfig.audioQosAec = true

是否开启回声消除,默认开启

  • true: 开启
  • false: 关闭

◆ audioQosAnr

boolean com.juphoon.cloud.JCCall.MediaConfig.audioQosAnr = true

是否开启发送端噪声抑制,默认开启

接收端声音噪声大,提高抑制等级。接收端声音小,可在不影响声音质量情况下降低抑制等级或者关闭抑制

  • true: 开启
  • false: 关闭

◆ audioQosAgc

boolean com.juphoon.cloud.JCCall.MediaConfig.audioQosAgc = true

是否开启发送端声音自动增益控制,默认开启

  • true: 开启
  • false: 关闭

◆ audioQosVad

boolean com.juphoon.cloud.JCCall.MediaConfig.audioQosVad = false

是否开启静音检测,默认关闭

  • true: 开启
  • false: 关闭

◆ audioPacketTime

int com.juphoon.cloud.JCCall.MediaConfig.audioPacketTime = 20

音频打包时长,默认值为 20

◆ audioQosAgcGain

int com.juphoon.cloud.JCCall.MediaConfig.audioQosAgcGain = 9

发送端声音自动增益控制强度,默认值为9

取值范围为[0,90],数值越大,增益强度越大。当 audioQosAgc 为 true 时有效

◆ videoEnableCodecs

String com.juphoon.cloud.JCCall.MediaConfig.videoEnableCodecs = "H264-SVC;H264;VP8;AV1"

视频编解码,协商优先级按顺序排列,默认值为 "H264-SVC;H264;VP8"

◆ videoResolutionRecvWidth

int com.juphoon.cloud.JCCall.MediaConfig.videoResolutionRecvWidth = 640

视频接收宽,默认值值为 640

◆ videoResolutionRecvHeight

int com.juphoon.cloud.JCCall.MediaConfig.videoResolutionRecvHeight = 360

视频接收高,默认值为 360

◆ videoResolutionSendWidth

int com.juphoon.cloud.JCCall.MediaConfig.videoResolutionSendWidth = 640

视频发送宽,默认值为 640

◆ videoResolutionSendHeight

int com.juphoon.cloud.JCCall.MediaConfig.videoResolutionSendHeight = 360

视频发送高,默认值为 360

◆ videoBitrate

int com.juphoon.cloud.JCCall.MediaConfig.videoBitrate = 800

视频初始码率 kb,默认值为 800

◆ videoSendFramerate

int com.juphoon.cloud.JCCall.MediaConfig.videoSendFramerate = 24

发送帧率,默认值为 24

◆ videoArsEnable

boolean com.juphoon.cloud.JCCall.MediaConfig.videoArsEnable = true

是否开启视频 ars,默认开启

  • true: 开启
  • false: 关闭

◆ videoArsBitrateMin

int com.juphoon.cloud.JCCall.MediaConfig.videoArsBitrateMin = 50

视频最小码率 kb,默认值为 50

◆ videoArsBitrateMax

int com.juphoon.cloud.JCCall.MediaConfig.videoArsBitrateMax = 1500

视频最大码率 kb,默认值为 1500

◆ videoArsFramerateMin

int com.juphoon.cloud.JCCall.MediaConfig.videoArsFramerateMin = 1

视频最小帧率 kb,默认值为 1

◆ videoArsFramerateMax

int com.juphoon.cloud.JCCall.MediaConfig.videoArsFramerateMax = 30

视频最大帧率 kb,默认值为 30

◆ videoRedFec

boolean com.juphoon.cloud.JCCall.MediaConfig.videoRedFec = true

是否开启rfc 2198 语音fec-red,默认开启

开启后可以增强抗丢包能力,会增加一倍的payload码率,不会增加包头。 比如Opus 55kbps增加一倍码率后,最终码率达到90kbps=55+35;Opus 10kbps增加一倍码率后,最终码率达到16kbps=10+6

  • true: 开启
  • false: 关闭

◆ videoRecvFullScreen

boolean com.juphoon.cloud.JCCall.MediaConfig.videoRecvFullScreen = true

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

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

  1. 本端默认请求是640*360的分辨率
  2. 本端屏幕分辨率为360*360
  • 若此参数设置成 true:请求分辨率 360*360
  • 若此参数设置成 false: 请求分辨率 640*360
  • true: 影响
  • false: 不影响

◆ videoSmallNalu

boolean com.juphoon.cloud.JCCall.MediaConfig.videoSmallNalu = true

是否开启视频数据以SmallNalu方式打包,默认开启

开启后,一个包打包的数据多,减少包头的码率,从而降低功耗

  • true: 开启
  • false: 关闭

◆ videoResolutionControl

boolean com.juphoon.cloud.JCCall.MediaConfig.videoResolutionControl = true

是否开启分辨率控制,默认开启

  • true: 开启,分辨率随网络波动而变化
  • false: 关闭,固定分辨率

◆ videoKeyPeriod

int com.juphoon.cloud.JCCall.MediaConfig.videoKeyPeriod = 0

视频关键帧间隔(毫秒),MODE_IOT_SMALLMODE_IOT_LARGE 模式下默认值为 1000

仅在 MODE_IOT_SMALLMODE_IOT_LARGE 模式下生效,其他模式下设置无效

◆ mode

int com.juphoon.cloud.JCCall.MediaConfig.mode = MODE_360P
protected

配置模式

默认为 MODE_360P

◆ heartbeatTime

int com.juphoon.cloud.JCCall.MediaConfig.heartbeatTime = 30

心跳间隔,默认心跳间隔为30秒

取值范围为(0,3600)。比如本端设置了心跳间隔为 X 秒,那么对端在 3*X 秒内都没有收到本端的心跳时,对端将收到 onCallItemRemove 通话结束的回调


该类的文档由以下文件生成:
  • cloud/src/main/call/com/juphoon/cloud/JCCall.java
最后更新时间: 2023/4/28 11:17:11