Class RCCallPlusClient
-
- All Implemented Interfaces:
public abstract class RCCallPlusClient
-
-
Constructor Summary
Constructors Constructor Description RCCallPlusClient()
-
Method Summary
Modifier and Type Method Description static RCCallPlusClient
getInstance()
abstract RCCallPlusResultCode
init(RCCallPlusConfig config)
初始化并设置通话全局配置,重复调用该方法时SDK内部会重新初始化。 abstract void
unInit()
反初始化通话引擎。 如果在调用销毁时有正在进行的通话,销毁前SDK内部会调用挂断方法。 会释放给 RCCallPlusClient 对象设置的所有监听 static String
getVersion()
获取SDK版本号码 abstract RCCallPlusResultCode
setVideoConfig(RCCallPlusVideoConfig config)
设置视频分辨率、码率、帧率。此方法支持通话过程中动态设置。 abstract RCCallPlusResultCode
setAudioConfig(RCCallPlusAudioConfig config)
设置本地音频配置。 必须与 startCall、accept 和 joinCall 方法前设置才有效 abstract void
setCallPlusEventListener(IRCCallPlusEventListener listener)
设置通话事件监听。 多次设置会覆盖,以最后一次设置生效 设置为"null"时,释放监听资源 如果需要通过该监听由 onReceivedCall 回调接收PUSH通知的通话。则需要在IM初始化和连接前注册 abstract void
setCallPlusResultListener(IRCCallPlusResultListener listener)
设置通话API结果回调监听。 多次设置会覆盖,以最后一次设置生效 设置为"null"时,释放监听资源 abstract void
setCallPlusStatusReportListener(IRCCallPlusStatusReportListener statusReportListener)
设置通话质量数据监听。 多次设置会覆盖,以最后一次设置生效 设置为"null"时,释放监听资源 abstract void
startCall(List<String> userIds, RCCallPlusType callType, RCCallPlusMediaType mediaType)
发起呼叫。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCall 方法获取执行结果。
abstract void
startCall(List<String> userIds, RCCallPlusType callType, RCCallPlusMediaType mediaType, RCCallPlusPushConfig pushConfig, String extra)
发起呼叫。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCall 方法获取执行结果。
abstract void
joinCall(String callId)
加入多人通话。 方法使用场景: - 场景一:A、B、C用户正在群通话时,其中一个用户挂断后,只要该群通话未结束。曾经参与过群通话的用户可以直接加入。
- 场景二:收到群通话呼叫后,可以使用该方法直接加入。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onJoinCall 方法获取执行结果。
abstract void
invite(List<String> userIds, RCCallPlusPushConfig pushConfig, String extra)
邀请用户加入通话。本端用户正在通话时,可以使用该方法邀请用户加入本通话。 调用该方法后会触发以下回调: - 被邀请用户会收到 onReceivedCall 回调。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onInvite 方法获取执行结果。
abstract void
invite(List<String> userIds)
邀请用户加入通话。本端用户正在通话时,可以使用该方法邀请用户加入本通话。 调用该方法后会触发以下回调: - 被邀请用户会收到 onReceivedCall 回调。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onInvite 方法获取执行结果。
abstract void
accept(String callId)
接听通话。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onAccept 方法获取执行结果。
abstract void
hangup(String callId)
挂断指定通话。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onHangup 方法获取执行结果。
abstract void
hangup(String callId, RCCallPlusPushConfig config)
挂断指定通话。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onHangup 方法获取执行结果。
abstract void
hangup()
挂断通话。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onHangup 方法获取执行结果。
abstract void
setVideoView(List<RCCallPlusRemoteVideoView> remoteVideoViewList)
设置远端用户视频流渲染视图 abstract void
setVideoView(RCCallPlusLocalVideoView localVideoView)
设置本端用户摄像头采集的视频流渲染视图,要释放本端视图,再次设置null即可 abstract void
removeVideoView(List<String> userIds)
删除远端用户的视频流渲染视图 abstract void
startCamera()
开启摄像头数据采集。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCamera 方法获取执行结果。
abstract void
startCamera(int cameraId, boolean mirror)
开启摄像头数据采集。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCamera 方法获取执行结果。
abstract void
switchCamera()
切换前后摄像头。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onSwitchCamera 方法获取执行结果。
abstract void
switchCamera(int cameraId, boolean mirror)
切换指定摄像头。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onSwitchCamera 方法获取执行结果。
abstract void
stopCamera()
关闭摄像头。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStopCamera 方法获取执行结果。
abstract RCCallPlusResultCode
enableMicrophone(boolean enable)
是否开启麦克风。 该方法为同步方法 abstract boolean
isMicrophoneEnabled()
本地麦克风是否开启。 获取的是 enableMicrophone 设置后的值 该方法为同步方法 abstract void
enableSpeaker(boolean enable)
设置是否切换听筒为扬声器。 该方法为同步方法 abstract boolean
isSpeakerphoneEnabled()
扬声器是否开启 abstract void
setVideoFrameListener(IRCCallPlusVideoFrameListener videoFrameListener)
设置本地视频采集回调。 多次设置会覆盖,以最后一次设置生效 设置为"null"时,释放监听资源 回调返回的数据类型 (RCRTCVideoFrame#getCaptureType()) 通过 RCCallPlusConfig.Builder.enableEncoderTexture(bool)
控制。RCCallPlusConfig config = RCCallPlusConfig.Builder.create() .enableEncoderTexture(false) //视频流采集方式 .build(); RCCallPlusResultCode resultCode = RCCallPlusClient.getInstance().init(config);
abstract void
setAudioFrameListener(IRCCallPlusAudioFrameListener audioFrameListener)
设置本地音频采集数据回调。 多次设置会覆盖,以最后一次设置生效 设置为"null"时,释放监听资源 abstract void
getCallRecordsFromServer(long syncTime, int count)
获取当前用户通话记录。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onGetCallRecordsFromServer 方法获取执行结果。
abstract void
getCallRecordsFromServer(long syncTime, int count, RCCallPlusOrder order)
获取当前用户通话记录。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onGetCallRecordsFromServer 方法获取执行结果。
abstract void
deleteCallRecordsFromServer(List<String> callIds)
批量删除通话记录。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onDeleteCallRecordsFromServer 方法获取执行结果。
abstract void
getAvailableCallRecordsFromServer()
从服务器查询当前用户未结束的通话记录。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onGetAvailableCallRecordsFromServer 方法获取执行结果。
abstract void
deleteAllCallRecordsFromServer()
清除当前用户通话记录。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onDeleteAllCallRecordsFromServer 方法获取执行结果。
abstract void
muteAllRemoteAudio(boolean mute)
通话过程中,设置所有远端用户是否静音,默认否 如果设置为true,后续订阅的远端用户声音也会被静音 该功能只是不播放远端用户的声音,依然在接收订阅成功的音频流 abstract void
requestChangeMediaType(RCCallPlusMediaType mediaType)
通话中请求将音频通话切换为视频通话。 远端用户同意升级后,SDK内部会自动发布摄像头流。为了远端用户能正常观看需要开发者调用 startCamera 和 startCamera 打开摄像头 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onRequestChangeMediaType 方法
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
abstract void
replyChangeMediaType(String transactionId, boolean isAgreed)
响应通话中的切换媒体类型请求。 同意升级后,SDK内部会自动发布摄像头流。为了远端用户能正常观看需要开发者调用 startCamera 和 startCamera 打开摄像头 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onReplyChangeMediaType 方法获取执行结果。
abstract void
cancelChangeMediaType(String transactionId)
取消已经发起的切换媒体类型请求。 调用该方法后会触发以下回调: - 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onCancelChangeMediaType 方法获取执行结果。
abstract RCCallPlusSession
getCurrentCallSession()
获取当前通话实体,通话实体中维护着当前通话的所有信息。 -
-
Method Detail
-
getInstance
static RCCallPlusClient getInstance()
-
init
abstract RCCallPlusResultCode init(RCCallPlusConfig config)
初始化并设置通话全局配置,重复调用该方法时SDK内部会重新初始化。
- Parameters:
config
- 设置通话全局配置- Returns:
方法调用后同步返回结果,可以在这里得到初始化是否成功
-
unInit
abstract void unInit()
反初始化通话引擎。
如果在调用销毁时有正在进行的通话,销毁前SDK内部会调用挂断方法。
会释放给 RCCallPlusClient 对象设置的所有监听
-
getVersion
static String getVersion()
获取SDK版本号码
-
setVideoConfig
abstract RCCallPlusResultCode setVideoConfig(RCCallPlusVideoConfig config)
设置视频分辨率、码率、帧率。此方法支持通话过程中动态设置。
- Parameters:
config
- 摄像头配置信息
-
setAudioConfig
abstract RCCallPlusResultCode setAudioConfig(RCCallPlusAudioConfig config)
- Parameters:
config
- 本地音频配置信息
-
setCallPlusEventListener
abstract void setCallPlusEventListener(IRCCallPlusEventListener listener)
设置通话事件监听。
多次设置会覆盖,以最后一次设置生效
设置为"null"时,释放监听资源
如果需要通过该监听由 onReceivedCall 回调接收PUSH通知的通话。则需要在IM初始化和连接前注册
- Parameters:
listener
- 通话事件监听
-
setCallPlusResultListener
abstract void setCallPlusResultListener(IRCCallPlusResultListener listener)
设置通话API结果回调监听。
多次设置会覆盖,以最后一次设置生效
设置为"null"时,释放监听资源
-
setCallPlusStatusReportListener
abstract void setCallPlusStatusReportListener(IRCCallPlusStatusReportListener statusReportListener)
设置通话质量数据监听。
多次设置会覆盖,以最后一次设置生效
设置为"null"时,释放监听资源
-
startCall
abstract void startCall(List<String> userIds, RCCallPlusType callType, RCCallPlusMediaType mediaType)
发起呼叫。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCall 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
userIds
- 设置发起呼叫被邀请的人员callType
- 设置发起通话类型mediaType
- 设置本地通话时媒体类型,SDK中会根据该类型发布默认流。- 如果为 VIDEO SDK内部默认发布本端摄像头+麦克风流。
- 如果为 AUDIO SDK内部默认发布本端麦克风流。
-
startCall
abstract void startCall(List<String> userIds, RCCallPlusType callType, RCCallPlusMediaType mediaType, RCCallPlusPushConfig pushConfig, String extra)
发起呼叫。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCall 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
userIds
- 设置发起呼叫被邀请的人员callType
- 设置发起通话类型mediaType
- 设置本地通话时媒体类型,SDK中会根据该类型发布默认流。- 如果为 VIDEO SDK内部默认发布本端摄像头+麦克风流。
- 如果为 AUDIO SDK内部默认发布本端麦克风流。
pushConfig
- 发起呼叫信令推送配置信息extra
- 发起呼叫携带的扩展参数,接收端通过 onReceivedCall 中extra参数接收
-
joinCall
abstract void joinCall(String callId)
加入多人通话。
方法使用场景:
- 场景一:A、B、C用户正在群通话时,其中一个用户挂断后,只要该群通话未结束。曾经参与过群通话的用户可以直接加入。
- 场景二:收到群通话呼叫后,可以使用该方法直接加入。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onJoinCall 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
callId
- 要加入的通话Id
-
invite
abstract void invite(List<String> userIds, RCCallPlusPushConfig pushConfig, String extra)
邀请用户加入通话。本端用户正在通话时,可以使用该方法邀请用户加入本通话。
调用该方法后会触发以下回调:
- 被邀请用户会收到 onReceivedCall 回调。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onInvite 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
pushConfig
- 发起呼叫信令推送配置信息extra
- 邀请用户加入通话携带的扩展参数,接收端通过 onReceivedCall 中extra参数接收
-
invite
abstract void invite(List<String> userIds)
邀请用户加入通话。本端用户正在通话时,可以使用该方法邀请用户加入本通话。
调用该方法后会触发以下回调:
- 被邀请用户会收到 onReceivedCall 回调。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onInvite 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
-
accept
abstract void accept(String callId)
接听通话。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onAccept 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
callId
- 通话Id
-
hangup
abstract void hangup(String callId)
- Parameters:
callId
- 通话Id
-
hangup
abstract void hangup(String callId, RCCallPlusPushConfig config)
- Parameters:
callId
- 通话Id
-
hangup
abstract void hangup()
-
setVideoView
abstract void setVideoView(List<RCCallPlusRemoteVideoView> remoteVideoViewList)
设置远端用户视频流渲染视图
-
setVideoView
abstract void setVideoView(RCCallPlusLocalVideoView localVideoView)
设置本端用户摄像头采集的视频流渲染视图,要释放本端视图,再次设置null即可
-
removeVideoView
abstract void removeVideoView(List<String> userIds)
删除远端用户的视频流渲染视图
-
startCamera
abstract void startCamera()
开启摄像头数据采集。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCamera 方法获取执行结果。
-
startCamera
abstract void startCamera(int cameraId, boolean mirror)
开启摄像头数据采集。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onStartCamera 方法获取执行结果。
- Parameters:
cameraId
- 指定需要开启的摄像头Id, 通常使用Android系统 Camera API 获取mirror
- 开启摄像头采集时数据是否镜像
-
switchCamera
abstract void switchCamera()
-
switchCamera
abstract void switchCamera(int cameraId, boolean mirror)
- Parameters:
cameraId
- 指定需要切换的摄像头Id, 通常使用Android系统 Camera API 获取mirror
- 开启摄像头采集时数据是否镜像
-
stopCamera
abstract void stopCamera()
-
enableMicrophone
abstract RCCallPlusResultCode enableMicrophone(boolean enable)
是否开启麦克风。
该方法为同步方法
- Parameters:
enable
- true:开启;false:关闭(默认)
-
isMicrophoneEnabled
abstract boolean isMicrophoneEnabled()
-
enableSpeaker
abstract void enableSpeaker(boolean enable)
设置是否切换听筒为扬声器。
该方法为同步方法
- Parameters:
enable
- 是否打开扬声器。默认为false。
-
isSpeakerphoneEnabled
abstract boolean isSpeakerphoneEnabled()
扬声器是否开启
- Returns:
扬声器是否开启
-
setVideoFrameListener
abstract void setVideoFrameListener(IRCCallPlusVideoFrameListener videoFrameListener)
设置本地视频采集回调。
多次设置会覆盖,以最后一次设置生效
设置为"null"时,释放监听资源
回调返回的数据类型 (RCRTCVideoFrame#getCaptureType()) 通过
RCCallPlusConfig.Builder.enableEncoderTexture(bool)
控制。RCCallPlusConfig config = RCCallPlusConfig.Builder.create() .enableEncoderTexture(false) //视频流采集方式 .build(); RCCallPlusResultCode resultCode = RCCallPlusClient.getInstance().init(config);
-
setAudioFrameListener
abstract void setAudioFrameListener(IRCCallPlusAudioFrameListener audioFrameListener)
设置本地音频采集数据回调。
多次设置会覆盖,以最后一次设置生效
设置为"null"时,释放监听资源
-
getCallRecordsFromServer
abstract void getCallRecordsFromServer(long syncTime, int count)
获取当前用户通话记录。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onGetCallRecordsFromServer 方法获取执行结果。
- Parameters:
syncTime
- 同步时间戳(单位:毫秒) 。首次可传 -1(0和-1效果一致),会根据 `正序` 查询顺序count
- 查询的条数
-
getCallRecordsFromServer
abstract void getCallRecordsFromServer(long syncTime, int count, RCCallPlusOrder order)
获取当前用户通话记录。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onGetCallRecordsFromServer 方法获取执行结果。
- Parameters:
syncTime
- 同步时间戳(单位:毫秒) 。首次可传 -1(0和-1效果一致),会根据 `order` 指定的查询顺序,返回最近的 n 条或最远的 n 条数据。count
- 查询的条数order
- 查询排序规则。默认为正序
-
deleteCallRecordsFromServer
abstract void deleteCallRecordsFromServer(List<String> callIds)
批量删除通话记录。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onDeleteCallRecordsFromServer 方法获取执行结果。
- Parameters:
callIds
- 需要删除通话记录的通话Id列表
-
getAvailableCallRecordsFromServer
abstract void getAvailableCallRecordsFromServer()
从服务器查询当前用户未结束的通话记录。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onGetAvailableCallRecordsFromServer 方法获取执行结果。
-
deleteAllCallRecordsFromServer
abstract void deleteAllCallRecordsFromServer()
清除当前用户通话记录。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onDeleteAllCallRecordsFromServer 方法获取执行结果。
-
muteAllRemoteAudio
abstract void muteAllRemoteAudio(boolean mute)
通话过程中,设置所有远端用户是否静音,默认否
如果设置为true,后续订阅的远端用户声音也会被静音
该功能只是不播放远端用户的声音,依然在接收订阅成功的音频流
- Returns:
0表示设置成功。失败错误码在 getValue 获取
-
requestChangeMediaType
abstract void requestChangeMediaType(RCCallPlusMediaType mediaType)
通话中请求将音频通话切换为视频通话。
远端用户同意升级后,SDK内部会自动发布摄像头流。为了远端用户能正常观看需要开发者调用 startCamera 和 startCamera 打开摄像头
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onRequestChangeMediaType 方法
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onRequestChangeMediaType 方法
-
replyChangeMediaType
abstract void replyChangeMediaType(String transactionId, boolean isAgreed)
响应通话中的切换媒体类型请求。
同意升级后,SDK内部会自动发布摄像头流。为了远端用户能正常观看需要开发者调用 startCamera 和 startCamera 打开摄像头
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onReplyChangeMediaType 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
transactionId
- 需要传入 onRequestChangeMediaType 方法返回的事务IdisAgreed
- 是否同意切换
-
cancelChangeMediaType
abstract void cancelChangeMediaType(String transactionId)
取消已经发起的切换媒体类型请求。
调用该方法后会触发以下回调:
- 该方法内部为异步执行。本地用户通过注册的 setCallPlusResultListener 监听的 onCancelChangeMediaType 方法获取执行结果。
当发生网络断开或IM链接断开等情况导致请求失败时,该方法会根据SDK内部的策略进行重试。如果重试一直失败,最长等待时间约为47秒,然后返回失败监听。
- Parameters:
transactionId
- 需要传入 onRequestChangeMediaType 方法返回的事务Id
-
getCurrentCallSession
abstract RCCallPlusSession getCurrentCallSession()
获取当前通话实体,通话实体中维护着当前通话的所有信息。
- Returns:
通话实体对象,如果不存在通话会为null
-
-
-