被叫方
接听通话
默认接听
当收到来自 onReceivedCall
的远端通话请求时,可使用 RongCallClient
的 acceptCall
方法来接听。该方法默认打开前置摄像头。
-
示例代码:
public void onReceivedCall(RongCallSession session) {
RongCallClient.getInstance().acceptCall(session.getCallId());
}
指定摄像头接听
来电监听中接收到来电请求后,调用如下方法接听通话,该方法可以打开指定 Id 摄像头。
-
参数说明:
参数 类型 必填 说明 callId String 是 呼叫 ID ,可以从 RongCallSession.getCallId() 中获取 cameraId int 是 摄像头 ID mirror boolean 是 是否镜像视频流 ,详细说明请查看下方提示 callback StartCameraCallback 是 打开摄像头是否成功回调 注意
某些特殊设备将后置摄像头安装在设备的前面时,当打开后置摄像头时为了正常显示,请使用镜像处理,
mirror
仅对本地有效(发送出去的数据依然是未处理数据), 如果本地视频流做了镜像处理,为了对端观看体验可以在IRongCallListener#onRemoteUserJoined(String, RongCallCommon.CallMediaType, int, SurfaceView)
回调中添加如下设置:public void onRemoteUserJoined (String userId, RongCallCommon.CallMediaType mediaType,int userType, SurfaceView remoteVideo){
if (null != remoteVideo) {
((RongRTCVideoView) remoteVideo).setMirror(boolean);//观看对方视频流是否镜像处理
}
} -
返回参数说明:
返回值 返回类型 说明 callId String 呼叫 ID ,可以从 RongCallSession.getCallId() 中获取 -
示例代码:
if (RongCallClient.getInstance() != null && RongCallClient.getInstance().getCallSession() != null) {
String callId = RongCallClient.getInstance().getCallSession().getCallId();
int cameraId = 0;
boolean mirror = false;
RongCallClient.getInstance().acceptCall(callId, cameraId, mirror, new StartCameraCallback() {
@Override
public void onDone(boolean isFront) {
}
@Override
public void onError(int errorCode) {
}
});
}
拒绝/挂断通话
调用 RongCallClient.hangUpCall
方法挂断通话,拒绝和挂断为同一个方法调用,SDK 内部会自动告知对方挂断、拒绝原因。
-
参数说明:
返回值 返回类型 说明 callId String 呼叫 ID,可以从 RongCallSession.getCallId() 中获取 -
示例代码:
// im未连接或者不在通话中,RongCallClient 和 RongCallSession 为空
if (RongCallClient.getInstance() != null && RongCallClient.getInstance().getCallSession() != null) {
RongCallClient.getInstance().hangUpCall(RongCallClient.getInstance().getCallSession().getCallId());
}