JRTCSDK-Android v2401.0
视频客服 API 文档
载入中...
搜索中...
未找到
Public 成员函数 | 静态 Public 成员函数 | Protected 成员函数 | 所有成员列表
JRTCGuest类 参考abstract

Public 成员函数

abstract int getCallState ()
 
abstract int getCallType ()
 
abstract boolean getHoldState ()
 
abstract boolean isOnewayVideo ()
 
abstract boolean isMainGuest ()
 
abstract JRTCRoomParticipant getMainAgentParticipant ()
 
abstract List< JRTCRoomParticipantgetAgentParticipants ()
 
abstract JRTCRoomParticipant getSelfParticipant ()
 
abstract List< JRTCRoomParticipantgetParticipants ()
 
abstract String getSerialNumber ()
 
abstract String getCallId ()
 
abstract String getShareStreamId ()
 
abstract String getShareUserId ()
 
abstract String getStatistics ()
 
abstract String getJsonStats ()
 
abstract List< JRTCVideoSizegetSupportVideoSizes ()
 
abstract void setUseExternalScreenCaptureControl (boolean useExternalControl)
 
abstract boolean queryAllGroups ()
 
abstract boolean call (String number, JRTCCallCenterCallParam callParam)
 
abstract boolean oneToOneCall (String userId, JRTCCallCenterCallParam callParam)
 
abstract boolean answer ()
 
abstract boolean term ()
 
abstract boolean requestUrgent ()
 
abstract void turnCallType (@CallType int callType)
 
abstract boolean sendMessage (String contentType, String content, String toUserId)
 
abstract boolean sendNotifyMessage (JRTCNotifyMessage notifyMessage, String toUserId)
 
abstract boolean enableUploadAudioStream (boolean enable)
 
abstract boolean enableUploadVideoStream (boolean enable)
 
abstract boolean sendAudioEmptyPack (boolean empty)
 
abstract boolean sendVideoEmptyPack (boolean empty)
 
abstract boolean enableScreenShare (boolean enable)
 
abstract boolean suspendScreenShare (boolean suspend, String tip)
 
abstract boolean isSuspendScreenShare ()
 
abstract boolean setRatio (float ratio)
 
abstract JRTCVideoSize getRequestSize ()
 
abstract void setRequestSize (JRTCVideoSize requestSize)
 
abstract boolean requestVideo (JRTCRoomParticipant participant, JRTCVideoSize videoSize)
 
abstract boolean unRequestVideo (JRTCRoomParticipant participant)
 
abstract boolean requestScreenVideo (JRTCVideoSize videoSize)
 
abstract boolean unRequestScreenVideo ()
 
abstract boolean enableLocalRecord (boolean enable, JRTCRecordLocalParam recordParam)
 
abstract boolean updateLocalRecordLayout (List< RecordLayout > layoutList)
 
abstract boolean isLocalRecording ()
 
abstract boolean enableRemoteRecord (boolean enable, JRTCRecordRemoteParam recordParam)
 
abstract boolean updateRemoteRecordLayout (List< JRTCRecordRemoteParam.RecordLayout > layoutList)
 
abstract boolean updateRemoteRecordWatermark (Map< String, String > watermarkTextMap)
 
abstract int getRemoteRecordState ()
 
abstract boolean setVideoDot (String timespan, String info)
 
abstract boolean responseSignResult (boolean result, String userId, String extraInfo)
 
abstract boolean enableMicAgc (boolean enable)
 
abstract boolean setSubScreenShare (boolean enable)
 
abstract boolean isSubScreenShare ()
 
- Public 成员函数 继承自 JRTCCallCenter
default int convertTermReason (boolean selfTerm, @JRTCEnum.ReasonCode int reason)
 

静态 Public 成员函数

static JRTCGuest create (JRTCClient client, JRTCMediaDevice mediaDevice, JRTCGuestCallback callback)
 
static void destroy ()
 

Protected 成员函数

abstract void destroyObj ()
 

额外继承的成员函数

- Public 属性 继承自 JRTCCallCenter
String MESSAGE_TYPE_NOTIFY = "Juphoon_Notify"
 
String MESSAGE_TYPE_NORMAL = "Juphoon_Message"
 
String MESSAGE_TYPE_SIGN = "Juphoon_Sign"
 
String MESSAGE_TYPE_CALL_FORWARDING = "call forwarding"
 
String KEY_MESSAGE_TYPE = "MessageType"
 
String KEY_CONTENT_TYPE = "ContentType"
 
String KEY_CONTENT = "Content"
 
String KEY_TYPE = "Type"
 
String KEY_SIGN = "Sign"
 
String KEY_SIGN_RESULT = "SignResult"
 
String KEY_EVENT = "event"
 
String KEY_DESC = "desc"
 
String KEY_EXTRA = "extra"
 
String KEY_CALL_TYPE = "CallType"
 
String KEY_HOLD_USER_ID = "HoldUserId"
 
String KEY_ONE_WAY = "Oneway"
 
String KEY_RESULT = "result"
 
int CALL_TYPE_VIDEO = 1
 
int CALL_TYPE_AUDIO = 0
 
int CALL_STATE_IDLE = 0
 
int CALL_STATE_CALLING = 1
 
int CALL_STATE_WAITING = 2
 
int CALL_STATE_INCOMING = 3
 
int CALL_STATE_TALKING = 4
 
int CALL_STATE_JOINING = 5
 
int CALL_INCOMING_TYPE_INIT = -1
 
int CALL_INCOMING_TYPE_CALL = EN_MTC_CC_INVITE_EVENT_TYPE_CALLING
 
int CALL_INCOMING_TYPE_INVITE = EN_MTC_CC_INVITE_EVENT_TYPE_INVITING
 
int CALL_INCOMING_TYPE_FORWARD = EN_MTC_CC_INVITE_EVENT_TYPE_FORWARDING
 
int CALL_INCOMING_TYPE_DIRECT_CALL = EN_MTC_CC_INVITE_EVENT_TYPE_DIRECT_CALLING
 
int TERM_REASON_NONE = 0
 
int TERM_REASON_QUIT = 1
 
int TERM_REASON_OVER = 2
 
int TERM_REASON_OFFLINE = 3
 
int TERM_REASON_INCOMING_CANCEL = 4
 
int TERM_REASON_INCOMING_TIMEOUT = 5
 
int TERM_REASON_TIME_OUT = 6
 
int TERM_REASON_JOIN_LICENCE_LIMIT = 7
 
int TERM_REASON_REJECT = 8
 
int TERM_REASON_ROOM_ERROR = 9
 
int TERM_REASON_INVALID_PARAM = 97
 
int TERM_REASON_CALL_FUNCTION_ERROR = 98
 
int TERM_REASON_NOT_LOGIN = 99
 
int TERM_REASON_OTHER = 100
 
int TYPE_1TO1 = 0
 
int TYPE_GROUP = 1
 
int TRANSFER_GROUP = 0
 
int TRANSFER_STUFF = 1
 
int PART_ROLE_INIT = -1
 
int PART_ROLE_MAIN_AGENT = MTC_ROOM_ROLE_CALLCENTER_PRINCIPAL | MTC_ROOM_ROLE_AGENT | MTC_ROOM_ROLE_PARTP
 
int PART_ROLE_AGENT = MTC_ROOM_ROLE_AGENT | MTC_ROOM_ROLE_PARTP
 
int PART_ROLE_MAIN_GUEST = MTC_ROOM_ROLE_CALLCENTER_PRINCIPAL | MTC_ROOM_ROLE_GUEST | MTC_ROOM_ROLE_PARTP
 
int PART_ROLE_GUEST = MTC_ROOM_ROLE_GUEST | MTC_ROOM_ROLE_PARTP
 
int PART_ROLE_VIEWER_AGENT = MTC_ROOM_ROLE_AGENT | MTC_ROOM_ROLE_VIEWER
 
int AGENT_ROLE_UNKNOWN = -1
 
int AGENT_ROLE_JUNIOR = 0
 
int AGENT_ROLE_SENIOR = 1
 
int AGENT_ROLE_EXPERT = 2
 
int AGENT_ROLE_MONITOR = 3
 
int AGENT_ROLE_ADMINISTRATOR = 4
 
int AGENT_ROLE_MANAGER = 5
 
int AGENT_ROLE_VIP = 6
 
int AGENT_ROLE_SPECIFIC = 7
 
int AGENT_ROLE_GENERAL = 8
 
int AGENT_ROLE_MAX = 9
 
int AGENT_CHANGE_TYPE_INCOMING = 0
 
int AGENT_CHANGE_TYPE_TALKING = 1
 
int AGENT_CHANGE_TYPE_TERMED = 2
 
int AGENT_CHANGE_TYPE_CALLING = 3
 
int AGENT_CHANGE_TYPE_JOINING = 4
 
int AGENT_TERM_STATE_BUSY = 0
 
int AGENT_TERM_STATE_FREE = 1
 
int AGENT_CHECK_OUT_REASON_NONE = 0
 
int AGENT_CHECK_OUT_REASON_LAST_ONLINE_OPERATOR = 1
 
int AGENT_CHECK_OUT_REASON_INVALID_PARAM = 97
 
int AGENT_CHECK_OUT_REASON_CALL_FUNCTION_ERROR = 98
 
int AGENT_CHECK_OUT_REASON_NOT_LOGIN = 99
 
int AGENT_CHECK_OUT_REASON_OTHER = 100
 
int AGENT_OPERATOR_IDLE = 0
 
int AGENT_OPERATOR_CHECKING_IN = 1
 
int AGENT_OPERATOR_CHECKING_OUT = 2
 
int AGENT_OPERATOR_CHECKED_IN = 3
 
int AGENT_RECORD_ACTION_START = 0
 
int AGENT_RECORD_ACTION_STOP = 1
 
int GUEST_CHANGE_TYPE_CALLING = 0
 
int GUEST_CHANGE_TYPE_WAITING = 1
 
int GUEST_CHANGE_TYPE_INCOMING = 2
 
int GUEST_CHANGE_TYPE_TALKING = 3
 
int GUEST_CHANGE_TYPE_TERMED = 4
 
int GUEST_ROLE_TYPE_UNKNOWN = -1
 
int GUEST_ROLE_TYPE_GENERAL = 0
 
int GUEST_ROLE_TYPE_VIP = 1
 

详细描述

访客管理

成员函数说明

◆ answer()

abstract boolean answer ( )
abstract

接听

仅在作为第三方访客同意接听通话邀请时调用,其他情况不会用到此接口。

返回
接口调用结果
  • true: 接口调用成功,会接收到 onCallStateChanged 回调
  • false: 接口调用异常

◆ call()

abstract boolean call ( String  number,
JRTCCallCenterCallParam  callParam 
)
abstract

呼叫指定业务

参数
number业务号,如10087,一般由业务管理人员在业务管理平台上配置业务,然后将业务号给开发人员
callParam呼叫参数设置,可以设置通话分辨率、全局宽高比等参数,此参数可传 null 则使用默认配置,详见 JRTCCallCenterCallParam
返回
接口调用结果
  • true: 接口调用成功,通话状态会通过 onCallStateChanged 回调上报
  • false: 接口调用异常

◆ create()

static JRTCGuest create ( JRTCClient  client,
JRTCMediaDevice  mediaDevice,
JRTCGuestCallback  callback 
)
static

创建 JRTCGuest 对象,为单例,重复调用返回同一对象

注解
  • JRTCGuest 的所有接口函数,如无特殊说明,都建议再主线程调用
  • 请确保在调用其他 API 前先调用该方法创建并初始化 JRTCClient 对象,JRTCMediaDevice 对象
  • 调用此方法前确保 JRTCClient 已完成初始化,即 state 方法获取的状态值不等于 STATE_NOT_INIT
  • 调用此方法创建 JRTCGuest 对象后,期间没有调用过 destroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JRTCGuest 对象
参数
clientJRTCClient 对象
mediaDeviceJRTCMediaDevice 对象
callbackJRTCGuestCallback 代理对象,用于实现 JRTCGuestCallback 事件
返回
JRTCGuest 对象
异常
初次创建时 JRTCClient、JRTCMediaDevice、JRTCGuestCallback 任意一个参数传空就会创建失败

◆ destroy()

static void destroy ( )
static

销毁 JRTCGuest 对象

注解
该方法为同步调用,需要等待 JRTCGuest 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JRTCGuest 的其它方法和回调。
我们 不建议 在 JRTCSDK 的回调中调用此方法销毁 JRTCGuest 对象,否则可能出现崩溃现象。
如需在销毁后再次创建 JRTCGuest 实例,需要等待 destroy 方法执行结束后再创建实例。

◆ destroyObj()

abstract void destroyObj ( )
abstractprotected

销毁对象

◆ enableLocalRecord()

abstract boolean enableLocalRecord ( boolean  enable,
JRTCRecordLocalParam  recordParam 
)
abstract

开启/关闭本地录制

注解
确保调用接口前本地录制文件所在目录已经存在,否则会录制失败
参数
enable开启或关闭本地录制
  • true: 开启本地录制
  • false: 关闭本地录制
recordParam本地录制参数配置,当 enable == true 时,JRTCRecordLocalParam#filePath 必须设置,其余参数不设置则使用默认配置;当 enable == false 时,recordParam 可传 null
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ enableMicAgc()

abstract boolean enableMicAgc ( boolean  enable)
abstract

开启或关闭本地麦克风的增益(软件增益),默认开启

注解
需要在建立通话后调用
参数
enable回调对象
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ enableRemoteRecord()

abstract boolean enableRemoteRecord ( boolean  enable,
JRTCRecordRemoteParam  recordParam 
)
abstract

开启/关闭远程视频录制

当呼叫参数 autoRecord == false 时,可通过此接口开启服务端录制。
可用过 getRemoteRecordState 接口获取当前服务器录制状态。

参数
enable开启或关闭视频录制
  • true: 开启视频录制
  • false: 关闭视频录制
recordParam录制参数,当 enable == false 时,可传 null;当 enable == true 且按照默认配置进行录制可传 null
返回
接口调用结果

◆ enableScreenShare()

abstract boolean enableScreenShare ( boolean  enable)
abstract

开启/关闭屏幕共享

注解
如果 setUseExternalScreenCaptureControl 为 true, 则该接口只负责信令通知,请确保开启屏幕共享前,已经开启了屏幕采集,否则远端用户收到屏幕共享画面为黑屏

成员开启或关闭屏幕共享,通话中的所有成员会收到 onCallPropertyChangedonCallPropertyChanged 回调。

参数
enable开启或关闭屏幕共享
  • true: 开启屏幕共享
  • false: 关闭屏幕共享
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ enableUploadAudioStream()

abstract boolean enableUploadAudioStream ( boolean  enable)
abstract

开启/关闭发送本地音频流

通话中调用该方法可开启或关闭发送本地音频流。开启后,通话中的成员将听见本端声音;关闭后,频道成员将听不见本端声音
通话中调用此方法成功后,服务器会更新状态并同步给通话中所有成员,即所有成员会收到 onMemberUpdateonMemberUpdate 回调,具体可关注 audioaudio
通话中调用此方法不影响接收其他成员的音频流

参数
enable开启/关闭发送本地音频流
  • true: 开启,即发送本地音频流
  • false: 关闭,即不发送本地音频流
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ enableUploadVideoStream()

abstract boolean enableUploadVideoStream ( boolean  enable)
abstract

开启/关闭发送本地视频流

通话中调用该方法可开启或关闭发送本地视频流。开启后,通话中的成员将看见本端画面;关闭后,频道成员将看不见本端画面
通话中调用此方法成功后,服务器会更新状态并同步给通话中所有成员,即所有成员会收到 onMemberUpdateonMemberUpdate 回调,具体可关注 videovideo
通话中调用此方法不影响接收其他成员的视频流

参数
enable开启/关闭发送本地视频流
  • true: 开启,即发送本地视频流
  • false: 关闭,即不发送本地视频流
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ getAgentParticipants()

abstract List< JRTCRoomParticipant > getAgentParticipants ( )
abstract

获取座席成员列表

返回
  • 只有在通话中且通话中存在座席成员才能获得含有座席成员对象的数组,返回空数组
  • 当通话中不存在第三方座席时,数组中仅包含一个主座席成员对象
  • 当通话中存在第三方座席时,数组中包含主座席和第三方座席成员对象
  • 当通话中仅存在一个座席时,座席成员发起转接成功后,在新的座席对象接听通话前这段时间内,返回空数组

◆ getCallId()

abstract String getCallId ( )
abstract

获取通话唯一标识

返回
通话唯一标识

◆ getCallState()

abstract int getCallState ( )
abstract

获取当前通话状态

返回
当前通话状态

◆ getCallType()

abstract int getCallType ( )
abstract

获取当前通话类型

可通过 turnCallType 接口修改当前通话类型。

返回
当前通话类型

◆ getHoldState()

abstract boolean getHoldState ( )
abstract

获取当前通话保持状态

座席可调用 JRTCAgent#setHoldState 接口修改当前通话的保持状态。

返回
当前通话是否保持
  • true:当前通话状态为保持
  • false:当前通话状态为正常

◆ getJsonStats()

abstract String getJsonStats ( )
abstract

获取实时统计信息

以Json字符串形式返回,包含以下信息:

 *         {
 *          "localActor": "[username:2333@100645.cloud.justalk.com]", // actorID
 *          "sendBWE": "1440",      // 发送带宽估计
 *          "recvBWE": "929",       // 接收带宽估计
 *          "sendBr": "16",         // 发送码率
 *          "recvBr": "772",        // 接收码率
 *          "sendJitter": "1",      // 发送jitter
 *          "recvJitter": "0",      // 接收jitter
 *          "sendLossRate": "0",    // 发送丢包率
 *          "recvLossRate": "0",    // 接收丢包率
 *          "encodeTime": "0",      // 编码时长
 *          "rtt":"5",              // 往返延时
 *          "audioSendBr": "19",    // 音频发送码率
 *          "videoSendBr": "0",     // 视频发送码率
 *          "audioLevel": "58",     // 音量
 *          "event":""
 *         }

◆ getMainAgentParticipant()

abstract JRTCRoomParticipant getMainAgentParticipant ( )
abstract

获取主座席成员

返回
  • 只有在通话中且通话中存在座席成员才能获得座席成员对象,否则为 null
  • 座席成员发起转接成功后,在新的座席对象接听通话前这段时间内,获取的值为 null

◆ getParticipants()

abstract List< JRTCRoomParticipant > getParticipants ( )
abstract

获取所有成员(包含自己、座席和其他访客)

◆ getRemoteRecordState()

abstract int getRemoteRecordState ( )
abstract

获取远程视频录制状态

返回
远程视频录制状态,详见 JRTCEnum.RemoteRecordState
  • RECORD_STATE_NONE : 无法进行视频录制。用户不在频道中或者加入频道时没有设置视频录制参数
  • RECORD_STATE_READY : 可以开启视频录制。用户在加入频道时设置了录制参数,并且没有在录制视频
  • RECORD_STATE_RUNNING : 视频录制中。用户在加入频道时设置了录制参数,并且正在视频录制中

◆ getRequestSize()

abstract JRTCVideoSize getRequestSize ( )
abstract

获取视频请求尺寸

影响自己看其他成员的视频分辨率

返回
视频请求尺寸

◆ getSelfParticipant()

abstract JRTCRoomParticipant getSelfParticipant ( )
abstract

获取自己对象

返回
自己对象

◆ getSerialNumber()

abstract String getSerialNumber ( )
abstract

获取服务唯一标识

上层可使用该参数通过业务管理平台第三方接口查询到话务信息,如录制视频文件的URL

返回
服务唯一标识

◆ getShareStreamId()

abstract String getShareStreamId ( )
abstract

获取屏幕共享的视频流ID

调用 startVideo 接口渲染通话中其他成员的屏幕共享画面时使用。

返回
  • 有屏幕共享时返回屏幕共享的视频流ID
  • 无屏幕共享时返回 null

◆ getShareUserId()

abstract String getShareUserId ( )
abstract

获取发起屏幕共享者的用户ID

可用来判断当前通话中是否有成员发起屏幕共享。

返回
  • 有屏幕共享时返回发起屏幕共享者的用户ID
  • 无屏幕共享时返回 null

◆ getStatistics()

abstract String getStatistics ( )
abstract

获取统计信息

以字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点:

 *      {
 *         "Config":                                        // 音视频设置信息
 *              {
 *                  "Audio Config:                          // 音频设置
 *                  {
 *                      "SRTP": off,                        // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常
 *                      "Codec": opus,                      // 本端设置的音频编码
 *                      "Payload": 116,                     // 音频payload的大小
 *                      "Bitrate": 16000,                   // 音频码率
 *                      "Pkt Len": 60,                      // 音频包长
 *                      "Nack": off,                        // 丢包是否允许数据包重传
 *                      "RTX": off,                         // 是否允许RTX技术
 *                      "FEC/RED": off,                     // 是否开启FEC
 *                      "AEC": on,                          // 是否开启回声消除
 *                      "Mode": OS,                         // AEC模式
 *                      "HowlSupp": Auto,                   // AEC HowlSupp模式
 *                      "Sts": Auto,                        // AEC Sts模式
 *                      "AGC": on,                          // 是否开启发送端自动增益
 *                      "Mode": Fixed,                      // 发送端AGC Mode
 *                      "Target": 3,                        // 发送端AGC Target
 *                      "Gain": 9,                          // 接收端AGC Gain
 *                      "Rx AGC": off,                      // 是否开启接收端自动增益
 *                      "Mode": Fixed,                      // 接收端AGC Mode
 *                      "Target": 3,                        // 接收端AGC Target
 *                      "Gain": 9,                          // 接收端AGC Gain
 *                      "VAD": off,                         // 是否开启VAD
 *                      "Mode": Mid,                        // VAD Mode
 *                      "ANR": off,                         // 是否开启发送端噪音抑制
 *                      "Mode": High,                       // ANR mode
 *                      "Noise": N/A,                       // 噪音音量
 *                      "SNR": N/A,                         // 信噪比
 *                      "Rx ANR": off,                      // 是否开启接收端噪音抑制
 *                      "Mode": Low,                        // 接收端ANR mode
 *                      "ARS": off,                         // 是否开启音频码率控制
 *                      "BR Min": N/A,                      // ARS码率最小值
 *                      "BR Max": N/A                       // ARS码率最大值
 *                  },
 *                  "Video Config":                         // 视频设置
 *                  {
 *                      "SRTP": off,                        // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常
 *                      "Codec": H264-SVC,                  // 双方通话采用的编解码类型
 *                      "Payload": 125,                     // 视频Payload的大小
 *                      "Bitrate": 2250,                    // 视频码率,单位kbps
 *                      "Framerate": 24,                    // 视频帧率,单位fps
 *                      "Resolution": 1280x720,             // 视频分辨率
 *                      "FEC": on|124|123,                  // FEC是否打开和payload的类型号
 *                      "FIR": off,                         // 是否允许重发关键帧
 *                      "Key Interval": 0,                  // 允许的最小关键帧间隔
 *                      "Repeat": 0,                        // 关键帧丢失是否允许重发
 *                      "NACK": off,                        // 丢包是否允许数据包重传
 *                      "RTX": off,                         // 是否允许RTX技术,RTX的payload类型
 *                      "TMMBR": off,                       // 是否允许带宽估计
 *                      "RPSI": off,                        // 是否允许RPSI技术
 *                      "Small NALU": on,                   // 是否允许NALU技术
 *                      "ARS": off,                         // 是否开启ARS自动码率检测
 *                      "BR Min": 10,                       // ARS发送码率下限
 *                      "BR Max": 2000,                     // ARS发送码率上限
 *                      "FR Min": 1,                        // ARS发送帧速率下限
 *                      "FR Max": 30,                       // ARS发送帧速率上限
 *                      "Res. Ctrl": off,                   // 是否允许分辨率控制
 *                      "Res. Mode": 0,                     // 分辨率Mode
 *                      "Fr Ctrl": on,                      // 是否允许帧速率控制
 *                      "CPU Load Ctrl": off,               // 是否允许CPU控制
 *                      "Target": 80,                       // CPU控制的最大使用率
 *                      "Bw Efficient": off,                // 是否采用节省带宽模式
 *                      "Error Conceal": off,               // 是否允许错误隐藏技术,在解码出错的时候采用
 *                      "Enhance color": off,               // 是否采用颜色增强技术
 *                      "Boost bright": off,                // 是否采用亮度增强技术
 *                      "Boost contrast": off,              // 是否采用对比度增强技术
 *                      "RTP Ext": CVO,                     // 使用的RTP扩展的类型
 *                      "Render Name": N/A,                 // 渲染图像的名字
 *                      "SVC": "320 180 250 640 360 600 1280 720 1400",     // 会议SVC配置
 *                      "TemporalLayers": 4,                // 取值1、2、3、4,会议时间层设置
 *                      "PreferMode":Clear                  // 偏好设置
 *                  }
 *          },
 *          "Network":                                  // 网络统计信息
 *          {
 *              "Send Statistic:                        // 数据发送统计信息
 *              {
 *                  "Packets": 181|1305|0|0,            // 发送的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数
 *                  "RTT": 4,                           // 网络双向延时的时间,单位为毫秒
 *                  "Jitter": 2,                        // 网络的扰动,表征数据包抖动的时间,单位毫秒
 *                  "Lost": 2,                          // 丢失的数据包的个数
 *                  "LostRate": 0,                      // 当前的丢包率,单位百分比
 *                  "RelayLost": 0,                     // 服务器转发丢包率
 *                  "RelayRtt": 0,                      // 服务器转发往返时延,单位为毫秒
 *                  "BitRate/BWE": 16/1345,             // BitRate表示当前发送的数据包的码率,单位kbps;BWE表示当前发送带宽的估计值
 *                  "AudioSend": 0|0,                   // 实际发送音频包次数|估计发送音频包次数
 *                  "VideoSend": 0|0,                   // 实际发送视频包次数|估计发送视频包次数
 *                  "ScreenSend": 0|0,                  // 实际发送屏幕共享包次数|估计发送屏幕共享包次数
 *                  "MaxPredKbps": 100,                 // 发送最大需求码率
 *                  "Server(102679111220103708)": [2211(1): BWE(1345|697) LOSS(0|0) OUT(A:37) IN(A:0;)] // 选用的第一个服务器
 *              },
 *              "Recv Statistic":                       // 数据接收统计信息
 *              {
 *                  "Packets": 1423|675|0|0,            // 收到的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数
 *                  "Jitter": 1,                        // 网络的扰动,表征数据包乱序的时间,单位毫秒
 *                  "Lost": 0,                          // 丢失的数据包的个数
 *                  "Lost Ratio": 0,                    // 当前的丢包率,单位百分比
 *                  "BitRate/BWE":178/2291,             // BitRate表示当前接收的数据包的码率,单位kbps;BWE表示当前接收带宽的估计值
 *                  "Server(102679111220103708)": [2211(3): BWE(1979|2150) LOSS(0|0) OUT(A:37;FPS:24,FEC:10,SUB:00f0=3456) IN(A:17;V:2273=2211[00f0]2273)] // 选用的第一个服务器
 *              },
 *          }
 *          "Transport":                                // 运输通道
 *          {
 *              "Local": 2.1923737535:32414,            // 本地地址
 *              "Remote": 2:11023,                      // 远端地址
 *              "LastPaths": 2,2,                       // 最后使用通道
 *              "Path": 2 [udp],                        // 通道名
 *              "Step1": Delay/Loss(S/R): 4/0/0,        // 通道质量
 *              "Cost": 7*(best: -1)                    // 通道分数
 *          },
 *          "Participants":
 *          {
 *          "2333":                                      // 成员为自己
 *              {
 *                  "Audio Sending Stats":              // 音频发送数据统计
 *                  {
 *                      "Packets": 143,                 // 发送的数据包的个数
 *                      "BitRate": 18.5,                // 发送的数据包的码率,单位kbps
 *                      "FecPrecent": 0                 // 音频Fec保护百分比,N/A表示未开启FEC保护
 *                  },
 *                  "Video Sending Stats":              // 视频发送数据统计
 *                  {
 *                      "Packets": 19502,               // 发送的数据包的个数
 *                      "Capture Res": 640x360,         // 视频采集分辨率
 *                      "Capture Fr": 30,               // 视频采集帧率
 *                      "FPS/IDR": [0|0|24|0]/3,        // 当前视频发送帧速/已发送的视频关键帧数
 *                      "Resolution": 1280x720[0|0|0],  // 当前发送图像最大尺寸。[]中为每种尺寸的帧率,取值范围为0到f(十六进制),0表示该层视频未被发送, 值越大表示该层视频帧率越高;
 *                      "Bitrate/Setrate": 0/2250,      // Bitrate表示当前发送的数据包的码率,单位kbps; Setrate表示视频编码的目标码率,单位kbps。
 *                      "QP": 20,                       // 发送当前图像的量化步长(0-51),越小图像画质越好。
 *                      "EncodeTime": 10,               // 当前编码时间,可以体现终端编码时占用的CPU性能,越大表示CPU占有越高,单位毫秒
 *                      "Codec": H264-SVC,              // 采用的编解码类型
 *                      "FecPrecent": 20                // 视频Fec保护百分比,N/A表示未开启FEC保护
 *                  },
 *                  "Be Subscribed Stats":              // 被订阅统计信息
 *                  {
 *                      "Audio": true,                  // 音频是否被订阅
 *                      "Video": [0|0|F|0]              // [S0|S1|S2|S3]表示4个空间层被订阅
 *                  },
 *                  "Publish Stats":                    // 当前音视频发布状态
 *                  {
 *                      "Audio": true,                  // 当前音频发布状态
 *                      "Video": true                   // 当前视频发布状态
 *                  }
 *              },
 *              "6666":                                 // 成员不是自己
 *              {
 *                  "Audio Receiving Stats":            // 音频接收统计信息
 *                  {
 *                      "Packets": 40243,               // 接收的数据包的个数
 *                      "BitRate": 18.5,                // 当前接收的数据包的码率,单位kbps。
 *                      "EpdRate/lr/dc": 0/0/0,         // expand rate/loss rate/discard rate。neteq buffer中的扩展比例/丢包比例/丢弃比例
 *                  },
 *                  "Video Receiving Stats":            // 视频接收统计信息
 *                  {
 *                      "Packets": 19502,               // 接收的数据包的个数
 *                      "BitRate": 161,                 // 当前发送的数据包的码率,单位kbps
 *                      "FPS/FIR": 24/0,                // 当前视频接收帧率/视频关键帧请求个数
 *                      "Resolution": 1280x720,         // 当前接收分辨率
 *                      "Render FR": 24,                // 当前渲染帧速率
 *                      "Codec": H264-SVC,              // 采用的编解码类型
 *                      "PvMos": 4.9,                   // 表示过去5s平均流畅度MOS分,每5s更新一次。体现视频画面的流畅程度。1到5分,1分最差,5分最好
 *                      "SMOS": 5,                      // 表示当前清晰度MOS分。体现视频画面的清晰程度。1到5分,1分最差,5分最好。前5s是0,是正常现象,因为PvMos还没有值
 *                  },
 *                  "Subscribed Stats":                 // 订阅统计信息
 *                  {
 *                      "Channel Audio": true,          // 当前是否发布音频
 *                      "Audio": true,                  // 当前音频订阅状态
 *                      "Video": [0|0|F|0]              // [S0|S1|S2|S3]表示4个空间层被订阅
 *                  }
 *              }
 *          }
 *      }

◆ getSupportVideoSizes()

abstract List< JRTCVideoSize > getSupportVideoSizes ( )
abstract

获取该通话支持的视频分辨率列表

返回
通话视频分辨率列表

◆ isLocalRecording()

abstract boolean isLocalRecording ( )
abstract

是否正在本地录制

返回
是否正在本地录制
  • true: 正在本地录制中
  • false: 未进行本地录制

◆ isMainGuest()

abstract boolean isMainGuest ( )
abstract

是否主访客

返回
  • true 主访客
  • false 其他三方访客

◆ isOnewayVideo()

abstract boolean isOnewayVideo ( )
abstract

获取单向视频状态

座席可调用 requestOnewayVideo 接口修改当前通话的单向视频状态。

返回
单向视频状态
  • true: 处于单向视频
  • false: 不处于单向视频

◆ isSubScreenShare()

abstract boolean isSubScreenShare ( )
abstract

获取是否订阅屏幕共享

返回
返回屏幕共享是否订阅

◆ isSuspendScreenShare()

abstract boolean isSuspendScreenShare ( )
abstract

是否屏幕共享暂停

返回
  • true: 暂停屏幕共享
  • false: 未暂停屏幕共享

◆ oneToOneCall()

abstract boolean oneToOneCall ( String  userId,
JRTCCallCenterCallParam  callParam 
)
abstract

呼叫指定座席

参数
userId座席 id,如agent1,一般由业务管理人员在业务管理平台上配置座席id,然后将座席id给开发人员
callParam呼叫参数设置,可以设置通话分辨率、全局宽高比等参数,此参数可传 null 则使用默认配置,详见 JRTCCallCenterCallParam
返回
接口调用结果
  • true: 接口调用成功,通话状态会通过 onCallStateChanged 回调上报
  • false: 接口调用异常

◆ queryAllGroups()

abstract boolean queryAllGroups ( )
abstract

获取业务号列表

返回
接口调用结果
  • true: 接口调用成功,返回结果通过 onGetAllGroups 回调上报
  • false: 接口调用异常

◆ requestScreenVideo()

abstract boolean requestScreenVideo ( JRTCVideoSize  videoSize)
abstract

订阅通话中屏幕共享的视频流

参数
videoSize视频请求的尺寸,详见 JRTCVideoSize
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ requestUrgent()

abstract boolean requestUrgent ( )
abstract

请求加急

请求加急流程:

  1. 访客在排队过程中调用此接口发起加急请求
  2. 管理员权限的座席(业务管理平台配置)收到 onUrgentRequest 回调
  3. 座席收到回调后调用 responseUrgent 接口对加急请求进行处理
  4. 座席处理后,访客会收到 onUrgentResultResponse 加急请求处理结果回调,如果座席同意加急请求,则将会插队到队列最前
    返回
    接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ requestVideo()

abstract boolean requestVideo ( JRTCRoomParticipant  participant,
JRTCVideoSize  videoSize 
)
abstract

订阅通话中其他成员的视频流

参数
participant成员对象
videoSize视频请求的尺寸,详见 JRTCVideoSize
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ responseSignResult()

abstract boolean responseSignResult ( boolean  result,
String  userId,
String  extraInfo 
)
abstract

响应座席签名请求

请求访客签名流程:

  1. 座席调用此接口向指定访客发送签名请求
  2. 座席调用成功后,访客会收到 JRTCGuestCallback#onSignRequest(String, String) onSignRequest} 回调
  3. 访客进行签名,并将签名图片上传至业务管理平台(需要应用层自行实现)
  4. 访客响应座席签名结果
参数
result签名结果
  • true: 签名成功
  • false: 签名失败
userId需要响应签名请求结果的座席用户ID
extraInfo随路额外消息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ sendAudioEmptyPack()

abstract boolean sendAudioEmptyPack ( boolean  empty)
abstract

发送音频空包

该接口不会导致成员的 audio 属性变化,发送音频空包不代表停止发送音频流。一般用于座席保持通话后使用。

参数
empty音频发送包是否为空包
  • true:发送音频空包
  • false:发送正常音频包
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ sendMessage()

abstract boolean sendMessage ( String  contentType,
String  content,
String  toUserId 
)
abstract

发送消息,消息内容不能大于4K

指定成员会收到 onMessageReceivedonMessageReceived 回调

参数
contentType消息内容类型
content消息内容
toUserId指定成员的用户ID,传 null 给通话中全部成员发送消息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ sendNotifyMessage()

abstract boolean sendNotifyMessage ( JRTCNotifyMessage  notifyMessage,
String  toUserId 
)
abstract

发送事件通知消息

通话中的其他成员会收到 onNotifyMessageReceivedonNotifyMessageReceived 回调

参数
notifyMessage事件通知实体对象
toUserId指定成员的用户ID,传 null 即给通话中全部成员发送通知消息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ sendVideoEmptyPack()

abstract boolean sendVideoEmptyPack ( boolean  empty)
abstract

发送视频空包

该接口不会导致成员的 video 属性变化,发送视频空包不代表停止发送视频流。一般用于座席保持通话后使用。

参数
empty视频发送包是否为空包
  • true:发送视频空包
  • false:发送正常视频包
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ setRatio()

abstract boolean setRatio ( float  ratio)
abstract

设置本端视频宽高比

将自己的视频采集根据宽高比裁剪后进行发送,通话中其他成员收到的画面将是裁剪后的比例。
该方法不影响其他成员的画面在本端的显示比例,也不影响其他成员相互之间的画面显示比例。
必须 开始通话后 设置才能生效,即收到 onCallStateChanged 回调且 type == JRTCCallCenter#GUEST_CHANGE_TYPE_TALKING 时设置才生效。

参数
ratio视频宽高比
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ setRequestSize()

abstract void setRequestSize ( JRTCVideoSize  requestSize)
abstract

设置视频请求尺寸

在渲染画面前设置才有效,建议在通话开始前设置。

参数
requestSize视频尺寸大小

◆ setSubScreenShare()

abstract boolean setSubScreenShare ( boolean  enable)
abstract

设置是否订阅屏幕共享

参数
enable是否订阅屏幕共享
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ setUseExternalScreenCaptureControl()

abstract void setUseExternalScreenCaptureControl ( boolean  useExternalControl)
abstract

设置是否由应用层自行控制屏幕采集逻辑,默认 false,由 SDK 内部根据通话业务开始/结束自动控制屏幕采集开启/关闭逻辑,比如通话建立时开启屏幕共享自动开启屏幕采集,关闭屏幕共享或者通话结束时自动关闭屏幕采集。

参数
useExternalControl是否由应用层自行控制屏幕采集逻辑
  • true 由应用层自行调用 enableScreenCapture 接口控制屏幕采集开启/关闭逻辑。
  • false 由 SDK 内部根据通话业务开始/结束自动控制屏幕采集开启/关闭逻辑。

◆ setVideoDot()

abstract boolean setVideoDot ( String  timespan,
String  info 
)
abstract

视频打点

参数
timespan时间戳
info打点信息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ suspendScreenShare()

abstract boolean suspendScreenShare ( boolean  suspend,
String  tip 
)
abstract

暂停/继续屏幕共享

注解
只有自己发起的屏幕共享可以使用该接口暂停,多次调用会覆盖
参数
suspendtrue 暂停屏幕共享, false 继续屏幕共享
tip暂停屏幕共享后提示文字
返回
接口调用结果

◆ term()

abstract boolean term ( )
abstract

结束通话

注解
  • 主访客调用此接口会结束通话,通话中所有成员都会离开,此通通话销毁,所有成员会收到 onCallStateChangedonCallStateChanged 通话结束回调。
  • 第三方访客调用此接口仅自身离开通话,通话中其他成员会收到该成员离开的回调 onMemberLeaveonMemberLeave 回调,通话继续进行。
返回
接口调用结果
  • true: 接口调用成功,会收到 onCallStateChanged 回调
  • false: 接口调用异常

◆ turnCallType()

abstract void turnCallType ( @CallType int  callType)
abstract

音视频通话切换

可以通过 getCallType 接口获取当前的通话类型
通话中所有成员都将收到onCallTypeChangedonCallTypeChanged 回调

参数
callType通话类型
返回
当前通话类型

◆ unRequestScreenVideo()

abstract boolean unRequestScreenVideo ( )
abstract

取消订阅通话中屏幕共享的视频流

返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ unRequestVideo()

abstract boolean unRequestVideo ( JRTCRoomParticipant  participant)
abstract

取消订阅通话中其他成员的视频流

参数
participant成员对象
返回
接口调用结果
  • true: 接口调用成功,会收到 onMemberUpdate 回调,具体可关注 videoSize 属性
  • false: 接口调用异常

◆ updateLocalRecordLayout()

abstract boolean updateLocalRecordLayout ( List< RecordLayout layoutList)
abstract

更新本地录制自定义布局

参数
layoutList需要更新的布局列表
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ updateRemoteRecordLayout()

abstract boolean updateRemoteRecordLayout ( List< JRTCRecordRemoteParam.RecordLayout >  layoutList)
abstract

更新远程录制自定义布局

参数
layoutList需要更新的布局列表
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ updateRemoteRecordWatermark()

abstract boolean updateRemoteRecordWatermark ( Map< String, String >  watermarkTextMap)
abstract

更新远程录制水印信息

参数
watermarkTextMap水印信息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常