Interface IRCCallPlusEventListener
-
- All Implemented Interfaces:
public interface IRCCallPlusEventListener
-
-
Method Summary
Modifier and Type Method Description abstract voidonReceivedCall(RCCallPlusSession callSession, String extra)被叫用户/被邀请用户接收到通话呼叫通知 该方法回调场景: - 本端用户没有正在进行中的音视频通话(getCurrentCallSession 获取的对象为空)时,远端用户通过 startCall 、invite 函数邀请本端用户进行通话。
- 本端用户正在进行音视频通话(getCurrentCallSession 获取的对象不为空)时,远端用户通过 startCall、invite 函数邀请本端用户进行通话。
public void onReceivedCall(RCCallPlusSession callSession) { RCCallPlusSession currentCallSession = RCCallPlusClient.getInstance().getCurrentCallSession(); if (currentCallSession != null && !TextUtils.equals(callSession.getCallId(), currentCallSession.getCallId())) { //在此处理有正在进行中的通话,又有第二通通话呼入的情况 //需要挂断 currentCallSession ,再接听新的通话 } }voidonCallConnected(RCCallPlusSession callSession)通话建立成功通知 voidonRemoteUserInvited(String callId, ArrayList<String> inviteeUserList, String inviterUserId)远端用户被邀请通知 voidonRemoteUserStateChanged(String callId, String userId, RCCallPlusUserSessionStatus status, RCCallPlusReason reason)远端用户人员状态变更通知 voidonCallEnded(RCCallPlusSession session, RCCallPlusReason reason)本地用户参与的通话结束通知 群聊时,本地用户主动挂断,才会收到该通知 voidonReceivedCallRecord(RCCallPlusCallRecord record)本地用户参与的通话结束,服务器生成通话记录通知 整个通话结束后才收到服务器通知 voidonRemoteMicrophoneStateChanged(String callId, String userId, boolean disabled)远端用户麦克风开关状态通知 voidonRemoteCameraStateChanged(String callId, String userId, boolean disabled)远端用户麦克风开关状态通知 voidonReceivedChangeMediaTypeRequest(String transactionId, String userId, RCCallPlusMediaType mediaType)通话中收到远端用户请求切换媒体类型通知 该通知为单聊场景使用 voidonReceivedChangeMediaTypeResult(String transactionId, String userId, RCCallPlusMediaType mediaType, RCCallPlusMediaTypeChangeResult result)通话中收到切换媒体类型结果通知 voidonCallTypeChanged(String callId, RCCallPlusType callType)通话类型变更通知 单聊时,邀请其他用户加入通话成功,当前通话升级为群通话 邀请和被邀请用户都会收到该通知 voidonFirstLocalVideoFrame(int width, int height)本地摄像头采集的视频流渲染首帧通知 voidonFirstRemoteAudioFrame(String userId)远端音频流首帧通知 voidonFirstRemoteVideoFrame(String userId, int width, int height)远端视频流首帧通知 voidonUserAudioLevelChanged(HashMap<String, Integer> hashMap)通话中用户音量通知,每秒回调一次。 voidonCallStartTimeFromServer(long callStartTime)通话开始时间通知(当前时间到1970-1-1 00:00:00的总毫秒数)。 通话开始时间戳为所有通话用户中最早加入房间的时间戳 voidonCallFirstFrameTimeFromServer(long callFirstFrameTime)收到首帧时间通知(当前时间到1970-1-1 00:00:00的总毫秒数)。 收到首帧时间戳为所有通话用户中最早收到首帧时间戳 voidonReceivedCallPlusSummaryMessage(Message message)本地用户参与的通话结束,本地生成的通话消息记录通知 目前,本回调仅在单人通话结束时(通话类型为PRIVATE)触发,并返回相应的信息。 在 IM Lib 登录成功后,将获取离线时产生的通话消息()。为了确保在登录成功后立即获取到这些消息,请在IM Lib初始化之前注册监听器:setCallPlusEventListener voidonReceivedGroupCallStatusMessage(Message message)收到群组内发起的音视频通话状态变更通知消息 只支持通话类型为 MULTI 并且通过 setTargetId 方法设置了群组id 后才可以触发回调 该通知为群通知,未参与该通话的用户也会收到该通知 在 IM Lib 登录成功后,将获取离线时产生的通话消息()。为了确保在登录成功后立即获取到这些消息,请在IM Lib初始化之前注册监听器:setCallPlusEventListener -
-
Method Detail
-
onReceivedCall
abstract void onReceivedCall(RCCallPlusSession callSession, String extra)
被叫用户/被邀请用户接收到通话呼叫通知
该方法回调场景:
- 本端用户没有正在进行中的音视频通话(getCurrentCallSession 获取的对象为空)时,远端用户通过 startCall 、invite 函数邀请本端用户进行通话。
- 本端用户正在进行音视频通话(getCurrentCallSession 获取的对象不为空)时,远端用户通过 startCall、invite 函数邀请本端用户进行通话。
如果本端用户需要接听该通话,需要先调用 hangup 方法挂断当前正在进行中的通话。再调用 accept 方法接听。
判断本端是否正在进行通话,又收到第二通呼叫方法:
public void onReceivedCall(RCCallPlusSession callSession) { RCCallPlusSession currentCallSession = RCCallPlusClient.getInstance().getCurrentCallSession(); if (currentCallSession != null && !TextUtils.equals(callSession.getCallId(), currentCallSession.getCallId())) { //在此处理有正在进行中的通话,又有第二通通话呼入的情况 //需要挂断 currentCallSession ,再接听新的通话 } }- Parameters:
callSession- 通话实例对象extra- 附件信息,由发起方传入
-
onCallConnected
void onCallConnected(RCCallPlusSession callSession)
通话建立成功通知
- Parameters:
callSession- 通话实例对象
-
onRemoteUserInvited
void onRemoteUserInvited(String callId, ArrayList<String> inviteeUserList, String inviterUserId)
远端用户被邀请通知
- Parameters:
callId- 通话IdinviteeUserList- 被邀请用户 Id 列表inviterUserId- 发起邀请用户 Id
-
onRemoteUserStateChanged
void onRemoteUserStateChanged(String callId, String userId, RCCallPlusUserSessionStatus status, RCCallPlusReason reason)
远端用户人员状态变更通知
- Parameters:
callId- 通话IduserId- 远端用户Idstatus- 远端户当前状态reason- 远端户状态变更原因
-
onCallEnded
void onCallEnded(RCCallPlusSession session, RCCallPlusReason reason)
本地用户参与的通话结束通知
群聊时,本地用户主动挂断,才会收到该通知
- Parameters:
session- 结束通话的实例对象reason- 通话结束原因
-
onReceivedCallRecord
void onReceivedCallRecord(RCCallPlusCallRecord record)
本地用户参与的通话结束,服务器生成通话记录通知
整个通话结束后才收到服务器通知
- Parameters:
record- 通话记录对象
-
onRemoteMicrophoneStateChanged
void onRemoteMicrophoneStateChanged(String callId, String userId, boolean disabled)
远端用户麦克风开关状态通知
- Parameters:
callId- 通话IduserId- 远端用户Iddisabled- 麦克风开关状态,true:为关闭状态。false:为开启状态。
-
onRemoteCameraStateChanged
void onRemoteCameraStateChanged(String callId, String userId, boolean disabled)
远端用户麦克风开关状态通知
- Parameters:
callId- 通话IduserId- 远端用户Iddisabled- 摄像头开关状态,true:为关闭状态。false:为开启状态。
-
onReceivedChangeMediaTypeRequest
void onReceivedChangeMediaTypeRequest(String transactionId, String userId, RCCallPlusMediaType mediaType)
通话中收到远端用户请求切换媒体类型通知
该通知为单聊场景使用
- Parameters:
transactionId- 事务id, 本次请求和应答的唯一标识userId- 发起人idmediaType- 请求切换的媒体类型,音频或音视频
-
onReceivedChangeMediaTypeResult
void onReceivedChangeMediaTypeResult(String transactionId, String userId, RCCallPlusMediaType mediaType, RCCallPlusMediaTypeChangeResult result)
通话中收到切换媒体类型结果通知
- Parameters:
transactionId- 事务id, 本次请求和应答的唯一标识userId- 发起人idmediaType- 最终的媒体类型result- 媒体类型切换结果 RCCallPlusMediaTypeChangeResult
-
onCallTypeChanged
void onCallTypeChanged(String callId, RCCallPlusType callType)
通话类型变更通知
单聊时,邀请其他用户加入通话成功,当前通话升级为群通话
邀请和被邀请用户都会收到该通知
- Parameters:
callId- 通话idcallType- 通话类型,单聊或群聊
-
onFirstLocalVideoFrame
void onFirstLocalVideoFrame(int width, int height)
本地摄像头采集的视频流渲染首帧通知
- Parameters:
width- 视频宽height- 视频高
-
onFirstRemoteAudioFrame
void onFirstRemoteAudioFrame(String userId)
远端音频流首帧通知
- Parameters:
userId- 远端用户Id
-
onFirstRemoteVideoFrame
void onFirstRemoteVideoFrame(String userId, int width, int height)
远端视频流首帧通知
- Parameters:
userId- 用户Idwidth- 视频宽height- 视频高
-
onUserAudioLevelChanged
void onUserAudioLevelChanged(HashMap<String, Integer> hashMap)
通话中用户音量通知,每秒回调一次。
- Parameters:
hashMap- key:用户Id value:音量值大小(取值:0-9)
-
onCallStartTimeFromServer
void onCallStartTimeFromServer(long callStartTime)
通话开始时间通知(当前时间到1970-1-1 00:00:00的总毫秒数)。
通话开始时间戳为所有通话用户中最早加入房间的时间戳
- Parameters:
callStartTime- 通话开始时间戳(单位:ms),由服务器生成的时间戳
-
onCallFirstFrameTimeFromServer
void onCallFirstFrameTimeFromServer(long callFirstFrameTime)
收到首帧时间通知(当前时间到1970-1-1 00:00:00的总毫秒数)。
收到首帧时间戳为所有通话用户中最早收到首帧时间戳
- Parameters:
callFirstFrameTime- 收到首帧时间戳(单位:ms),由服务器生成的时间戳
-
onReceivedCallPlusSummaryMessage
void onReceivedCallPlusSummaryMessage(Message message)
本地用户参与的通话结束,本地生成的通话消息记录通知
目前,本回调仅在单人通话结束时(通话类型为PRIVATE)触发,并返回相应的信息。
在 IM Lib 登录成功后,将获取离线时产生的通话消息()。为了确保在登录成功后立即获取到这些消息,请在IM Lib初始化之前注册监听器:setCallPlusEventListener
- Parameters:
message- 通话结束消息实例cn.rongcloud.callplus.api.
-
onReceivedGroupCallStatusMessage
void onReceivedGroupCallStatusMessage(Message message)
收到群组内发起的音视频通话状态变更通知消息
只支持通话类型为 MULTI 并且通过 setTargetId 方法设置了群组id 后才可以触发回调
该通知为群通知,未参与该通话的用户也会收到该通知
在 IM Lib 登录成功后,将获取离线时产生的通话消息()。为了确保在登录成功后立即获取到这些消息,请在IM Lib初始化之前注册监听器:setCallPlusEventListener
- Parameters:
message- 通话状态变更消息实例RCGroupCallStatusMessageContent
-
-
-