Skip to content

Latest commit

 

History

History
334 lines (294 loc) · 17.3 KB

api.md

File metadata and controls

334 lines (294 loc) · 17.3 KB

API 概览

创建实例和事件回调

API 描述
sharedInstance 创建 TCCCCloud 实例(单例模式)
destroySharedInstance 销毁 TCCCCloud 实例(单例模式)
setListener 设置 TCCC 事件回调

创建实例和设置事件回调示例代码

// 创建实例和设置事件回调
TCCCCloud mTCCCCloud = TCCCCloud.sharedInstance(getApplicationContext());
mTCCCCloud.setListener(new TCCCCloudListener() {});

登录相关接口函数

API 描述
login SDK 登录
isLogin 判断 SDK 是否已经登录

判断是否登录和登录示例代码

/// 判断SDK是否已登录
boolean isLogin = mTCCCCloud.isLogin();
if(isLogin){
    // 发起呼叫
}else{
    /// SDK 登录
    TCCCCloudDef.TCCCLoginParams loginParams = new TCCCCloudDef.TCCCLoginParams();
    // 你联络中心 14xxx 开头的应用ID
    loginParams.sdkAppId= 0;
    loginParams.clientUserId = "UserId";
    // 正确的 UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向 App 的接口,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig。
    // 更多详情请参见 [创建用户数据签名](https://cloud.tencent.com/document/product/679/58260)
    loginParams.clientUserSig = "xxx";  // 替换为自己服务端获取的 UserSig。
    mTCCCCloud.login(loginParams, new TXCallback() {
        @Override
        public void onSuccess() {
            // 登录成功
            // 发起呼叫
        }

        @Override
        public void onError(int i, String s) {
            // 登录失败
        }
    });
}

呼叫相关接口函数

API 描述
startCall 发起通话
endCall 结束通话

发起呼叫和结束呼叫示例代码

// 发起视频呼叫
TCCCCloudDef.TCCCStartCallParams callParams = new TCCCCloudDef.TCCCStartCallParams();
callParams.channelId = ""; // 视频客服应用配置入口的 APP ID
callParams.callType = TCCCCloudDef.TCCCCallType.Video;   // 指定为视频客服
mTCCCCloud.startCall(callParams);
// 用户主动结束呼叫或者结束通话
mTCCCCloud.endCall();

// 发起音频呼叫
TCCCCloudDef.TCCCStartCallParams callParams = new TCCCCloudDef.TCCCStartCallParams();
callParams.channelId = ""; // 音频客服应用配置入口的 APP ID
callParams.callType = TCCCCloudDef.TCCCCallType.VOIP;   // 指定为音频客服
mTCCCCloud.startCall(callParams);

视频相关接口函数

API 描述
startLocalPreview 开启本地摄像头的预览画面(移动端)
stopLocalPreview 停止摄像头预览
switchCamera 切换摄像头
updateLocalView 更新本地摄像头的预览画面
setLocalRenderParams 设置本地画面的渲染参数
startRemoteView 订阅远端坐席的视频流,并绑定视频渲染控件
stopRemoteView 停止订阅远端用户的视频流,并释放渲染控件
setVideoEncoderParam 设置视频编码器的编码参数
updateRemoteView 更新远端用户的视频渲染控件

开启本地视频和远端视频示例代码

// 开启前置摄像头预览,其中 txvMainVideoView 为视频画面控件
mTCCCCloud.startLocalPreview(true, txvMainVideoView);
// 显示坐席端画面,其中 txvMainVideoView 为视频画面控件
mTCCCCloud.startRemoteView(TCCCCloudDef.TCCC_VIDEO_STREAM_TYPE_BIG,txvMainVideoView);               

音频相关接口函数

API 描述
startLocalAudio 开启本地音频的采集和发布
stopLocalAudio 停止本地音频的采集和发布
muteLocalAudio 暂停/恢复发布本地的音频流
setSoundMode 设置音频路由
muteRemoteAudio 暂停/恢复播放远端的音频流
enableAudioVolumeEvaluation 启用音量大小提示
setAudioCaptureVolume 设定本地音频的采集音量
getAudioCaptureVolume 获取本地音频的采集音量
setAudioPlayoutVolume 设定远端音频的播放音量
getAudioPlayoutVolume 获取远端音频的播放音量

开启本地音频和停止本地音频示例代码

// 开启本地音频采集
mTCCCCloud.startLocalAudio(TCCCCloudDef.TCCC_AUDIO_QUALITY_SPEECH);
// 暂停发布本地音频流
mTCCCCloud.muteLocalAudio(false);

调试相关接口

API 描述
getSDKVersion 获取 SDK 版本信息
setLogLevel 设置 Log 输出级别
setConsoleEnabled 启用/禁用控制台日志打印
showDebugView 显示仪表盘
callExperimentalAPI 调用实验性接口

获取SDK版本示例代码

// 获取SDK 版本号
TCCCCloud.getSDKVersion();

错误和警告事件

API 描述
onError 错误事件回调
onWarning 警告事件回调

处理错误回调事件回调示例代码

mTCCCCloud.setListener(new TCCCCloudListener() {
    /**
        * 错误事件回调
        * 错误事件,表示 SDK 抛出的不可恢复的错误,比如进入房间失败或设备开启失败等。
        * @param errCode   错误码
        * @param errMsg    错误信息
        * @param extraInfo 扩展信息字段,个别错误码可能会带额外的信息帮助定位问题
        */
    @Override
    public void onError(int errCode, String errMsg, Bundle extraInfo) {
        super.onError(errCode, errMsg, extraInfo);
    }

    /**
        * 警告事件回调
        * 警告事件,表示 SDK 抛出的提示性问题,比如视频出现卡顿或 CPU 使用率太高等。
        * @param warningCode 警告码
        * @param warningMsg  警告信息
        * @param extraInfo   扩展信息字段,个别警告码可能会带额外的信息帮助定位问题
        */
    @Override
    public void onWarning(int warningCode, String warningMsg, Bundle extraInfo) {
        super.onWarning(warningCode, warningMsg, extraInfo);
    }
});

呼叫相关事件回调

API 描述
onStartCall 发起通话成功与否的事件回调
onAccepted 坐席端接听回调
onCallEnd 通话结束回调

处理接听和坐席挂断事件回调示例代码

mTCCCCloud.setListener(new TCCCCloudListener() {
    /**
     * 发起通话成功与否的事件回调
     * 调用 TCCCCloud 中的 startCall() 接口执行呼叫操作后,会收到来自 TCCCCloudListener 的 onStartCall(result) 回调:
     * 如果发起视频通话成功,回调 result 会是一个正数(result > 0),代表发起视频通话所消耗的时间,单位是毫秒(ms)。
     * 如果发起视频通话失败,回调 result 会是一个负数(result < 0),代表失败原因的错误码。 发起视频通话失败的错误码含义请参见错误码表。
     * @param result result > 0 时为发起视频通话耗时(ms),result < 0 时为发起视频通话错误码。
     */
    @Override
    public void onStartCall(long result) {
        super.onStartCall(result);
        if(result >0){
          // 发起通话成功
        }else{
          //  发起通话失败
        }
    }

    /**
     * 坐席端接听回调,默认不播放视频,需要播放画面调用 startRemoteView
     */
    @Override
    public void onAccepted() {
        super.onAccepted();
    }

    /**
     * 通话结束回调
     * 收到该回调说明本次通话结束了。
     *
     * @param reason  结束原因
     * @param message 结束原因描述
     */
    @Override
    public void onCallEnd(int reason, String message) {
        super.onCallEnd(reason, message);
        if (TCCCCloudDef.TCCC_CALL_END_USER_HANG_UP == reason) {
                  // "挂断成功"
              }else if(TCCCCloudDef.TCCC_CALL_END_NO_SEAT_ONLINE == reason){
                  // "坐席无人接听"
              }else if(TCCCCloudDef.TCCC_CALL_END_SEAT_HAND_UP == reason){
                  // "坐席已挂断"
              }else if(TCCCCloudDef.TCCC_CALL_END_TIME_OUT == reason){
                  // "坐席接听超时"
              }else if(TCCCCloudDef.TCCC_CALL_END_SEAT_UNKNOWN == reason) {
                  // "系统异常挂断"
              }
          }
          mTCCCCloud.stopLocalPreview();
          mTCCCCloud.stopRemoteView(TCCCCloudDef.TCCC_VIDEO_STREAM_TYPE_SMALL);
    }
});

音视频相关事件回调

API 描述
onRemoteVideoAvailable 坐席端用户发布/取消了自己的视频
onRemoteAudioAvailable 坐席端用户发布/取消了自己的音频
onUserVoiceVolume 音量大小的反馈回调

处理远端视频画面事件回调示例代码

mTCCCCloud.setListener(new TCCCCloudListener() {
    /**
      * 坐席端用户发布/取消了自己的视频
      * 当您收到 onSeatVideoAvailable(true) 通知时,表示坐席端用户发布了自己的声音
      * @param available 远端用户是否发布(或取消发布)了主路视频画面,true: 发布;false:取消发布。
      */
    @Override
    public void onRemoteVideoAvailable(boolean available) {
        super.onRemoteVideoAvailable(available);
        if(available) {
            mRemoteView.setVisibility(View.VISIBLE);
            mTCCCCloud.startRemoteView(TCCCCloudDef.TCCC_VIDEO_STREAM_TYPE_SMALL,mRemoteView);
        }else{
            mRemoteView.setVisibility(View.GONE);
        }
    }
});

与云端连接情况的事件回调

API 描述
onConnectionLost SDK 与云端的连接已经断开
onTryToReconnect SDK 正在尝试重新连接到云端
onConnectionRecovery SDK 与云端的连接已经恢复

与云端连接情况的事件回调示例代码

mTCCCCloud.setListener(new TCCCCloudListener() {
    /**
        * SDK 与云端的连接已经断开
        * SDK 会在跟云端的连接断开时抛出此事件回调,导致断开的原因大多是网络不可用或者网络切换所致,
        * 比如用户在通话中走进电梯时就可能会遇到此事件。 在抛出此事件之后,SDK 会努力跟云端重新建立连接,
        * 重连过程中会抛出 onTryToReconnect,连接恢复后会抛出 onConnectionRecovery 。
        * 所以,SDK 会在如下三个连接相关的事件中按如下规律切换:
        */
    @Override
    public void onConnectionLost() {
        super.onConnectionLost();
    }

    /**
        * SDK 正在尝试重新连接到云端
        * SDK 会在跟云端的连接断开时抛出 onConnectionLost,之后会努力跟云端重新建立连接并抛出本事件,
        * 连接恢复后会抛出 onConnectionRecovery。
        */
    @Override
    public void onTryToReconnect() {
        super.onTryToReconnect();
    }

    /**
        * SDK 与云端的连接已经恢复
        * SDK 会在跟云端的连接断开时抛出 onConnectionLost,之后会努力跟云端重新建立连接并抛出onTryToReconnect,
        * 连接恢复后会抛出本事件回调。
        */
    @Override
    public void onConnectionRecovery() {
        super.onConnectionRecovery();
    }
});

API 错误码

基础错误码

符号 含义
TCCC_ERR_NULL 0 无错误
TCCC_SYSTEM_ERROR -1002 TCCC 系统错误
TCCC_SYSTEM_PARAMETER_ERROR -1001 参数错误

登录相关错误码

符号 含义
TCCC_USER_NO_LOGIN -2019 用户未登录
TCCC_SYSTEM_REGISTRATION_FAILED -2013 消息系统注册失败
TCCC_LOGIN_TICKET_ERROR -2014 登录态异常,签名校验失败
TCCC_LOGIN_TICKET_EXPIRED -2015 登录态过期

呼叫相关错误码

符号 含义
TCCC_TIM_INIT_FAIL -3001 TIM 初始化失败
TCCC_START_SESSION_FAIL -3002 开始会话失败