跳到主要内容

被叫方

接听通话

默认接听

当收到来自 onReceivedCall 的远端通话请求时,可使用 RongCallClientacceptCall 方法来接听。该方法默认打开前置摄像头。

  • 示例代码:

    public void onReceivedCall(RongCallSession session) {
    RongCallClient.getInstance().acceptCall(session.getCallId());
    }

指定摄像头接听

来电监听中接收到来电请求后,调用如下方法接听通话,该方法可以打开指定 Id 摄像头。

  • 参数说明:

    参数类型必填说明
    callIdString呼叫 ID ,可以从 RongCallSession.getCallId() 中获取
    cameraIdint摄像头 ID
    mirrorboolean是否镜像视频流,详细说明请查看下方提示
    callbackStartCameraCallback打开摄像头是否成功回调

    注意

    某些特殊设备将后置摄像头安装在设备的前面时,当打开后置摄像头时为了正常显示,请使用镜像处理, 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);//观看对方视频流是否镜像处理
    }
    }
  • 返回参数说明:

    返回值返回类型说明
    callIdString呼叫 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 内部会自动告知对方挂断、拒绝原因。

  • 参数说明:

    返回值返回类型说明
    callIdString呼叫 ID,可以从 RongCallSession.getCallId() 中获取
  • 示例代码:

    // im未连接或者不在通话中,RongCallClient 和 RongCallSession 为空
    if (RongCallClient.getInstance() != null && RongCallClient.getInstance().getCallSession() != null) {
    RongCallClient.getInstance().hangUpCall(RongCallClient.getInstance().getCallSession().getCallId());
    }