回调接口

您需要设置通话状态的回调,来监听通话状态的变化。

RongCallClient.getInstance().setVoIPCallListener(new IRongCallListener() {
    /**
     * 电话已拨出。
     * 主叫端拨出电话后,通过回调 onCallOutgoing 通知当前 call 的详细信息。
     *
     * @param callSession 通话实体。
     * @param localVideo  本地 camera 信息。
     */
    @Override
    public void onCallOutgoing(RongCallSession callSession, SurfaceView localVideo) {

    }

    /**
     * 已建立通话。
     * 通话接通时,通过回调 onCallConnected 通知当前 call 的详细信息。
     *
     * @param callSession 通话实体。
     * @param localVideo  本地 camera 信息。
     */
    @Override
    public void onCallConnected(RongCallSession callSession, SurfaceView localVideo) {

    }

    /**
     * 通话结束。
     * 通话中,对方挂断,己方挂断,或者通话过程网络异常造成的通话中断,都会回调 onCallDisconnected。
     *
     * @param callSession 通话实体。
     * @param reason      通话中断原因。
     */
    @Override
    public void onCallDisconnected(RongCallSession callSession, RongCallCommon.CallDisconnectedReason reason) {

    }

    /**
     * 被叫端正在振铃。
     * 主叫端拨出电话,被叫端收到请求,发出振铃响应时,回调 onRemoteUserRinging。
     *
     * @param userId 振铃端用户 id。
     */
    @Override
    public void onRemoteUserRinging(String userId) {

    }

    /**
     * 被叫端加入通话。
     * 主叫端拨出电话,被叫端收到请求后,加入通话,回调 onRemoteUserJoined。
     *
     * @param userId      加入用户的 id。
     * @param mediaType   加入用户的媒体类型,audio or video。
     * @param userType    加入用户的类型,正常用户或者观察者  
     * @param remoteVideo 加入用户者的 camera 信息。
     */
    @Override
    public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {

    }

    /**
     * 通话中的某一个参与者,邀请好友加入通话,发出邀请请求后,回调 onRemoteUserInvited。
     *
     * @param userId    被邀请者的 id。
     * @param mediaType 被邀请者的 id。
     */
    @Override
    public void onRemoteUserInvited(String userId, RongCallCommon.CallMediaType mediaType) {

    }

    /**
     * 通话中的远端参与者离开。
     * 回调 onRemoteUserLeft 通知状态更新。
     *
     * @param userId 远端参与者的 id。
     * @param reason 远端参与者离开原因。
     */
    @Override
    public void onRemoteUserLeft(String userId, RongCallCommon.CallDisconnectedReason reason) {

    }

    /**
     * 当通话中的某一个参与者切换通话类型,例如由 audio 切换至 video,回调 onMediaTypeChanged。
     *
     * @param userId    切换者的 userId。
     * @param mediaType 切换者,切换后的媒体类型。
     * @param video     切换着,切换后的 camera 信息,如果由 video 切换至 audio,则为 null。
     */
    @Override
    public void onMediaTypeChanged(String userId, RongCallCommon.CallMediaType mediaType, SurfaceView video) {

    }

    /**
     * 通话过程中,发生异常。
     *
     * @param errorCode 异常原因。
     */
    @Override
    public void onError(RongCallCommon.CallErrorCode errorCode) {

    }

    /**
     * 远端参与者 camera 状态发生变化时,回调 onRemoteCameraDisabled 通知状态变化。
     *
     * @param userId   远端参与者 id。
     * @param disabled 远端参与者 camera 是否可用。
     */
    @Override
    public void onRemoteCameraDisabled(String userId, boolean disabled) {

    }

    /**
     * 请求白板页面之后的回调
     * @param url   白板页面的url
     */
    @Override
    public void onWhiteBoardURL(String url){}

    /**
     * 返回本地发送数据流的丢包率,每秒刷新一次。
     *
     * @param lossRate 取值范围0~100, 代表丢包率0%~100%
     */
    @Override
    public void onNetWorkLossRate(int lossRate){}

    /**
     * 当有与会人打开/关闭屏幕共享时,其他与会人员会收到回调
     *
     * @param userId 操作屏幕共享的用户Id
     * @param isSharing true:打开 / false:关闭
     */
    @Override
    public void onNotifySharingScreen(String userId, boolean isSharing){}

    /**
     * 正常用户被降级为观察者
     *
     * @param userId  被降级的用户ID
     */
    @Override
    public void onNotifyDegradeNormalUserToObserver(String userId){}

    /**
     * 自己是观察者且已在聊天室中, 主持人邀请自己升级成为正常用户时的通知, 在此回调中需要给出应答,
     */
    @Override
    public void onNotifyUpgradeObserverToNormalUser(){}

    /**
     * 主持人邀请用户打开或者关闭摄像头、麦克风。
     *
     * @param userId 用户ID
     * @param dType  操作的设备类型
     * @param isOpen 是否打开
     */
    @Override
    public void onNotifyHostControlUserDevice(String userId, int dType, int isOpen){}
});