tencent cloud

文档反馈

TUICallObserver

最后更新时间:2024-01-17 11:58:53

    TUICallObserver API 简介

    TUICallObserver 是 TUICallEngine 对应的回调事件类,您可以通过此回调,来监听自己感兴趣的回调事件。

    回调事件概览

    API
    描述
    onError
    通话过程中错误回调
    通话请求的回调
    通话取消的回调
    通话接通的回调
    onCallEnd
    通话结束的回调
    通话媒体类型发生改变的回调
    xxxx 用户拒绝通话的回调
    xxxx 用户不响应的回调
    xxxx 用户忙线的回调
    xxxx 用户加入通话的回调
    xxxx 用户离开通话的回调
    xxx 用户是否有视频流的回调
    xxx 用户是否有音频流的回调
    所有用户音量大小的反馈回调
    所有用户网络质量的反馈回调
    当前用户被踢下线
    在线时票据过期

    回调事件详情

    onError

    错误回调。
    说明
    SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。
    void onError(int code, String msg);
    参数如下表所示:
    参数
    类型
    含义
    code
    int
    错误码
    msg
    String
    错误信息

    onCallReceived

    收到一个新的来电请求回调,被叫会收到,您可以通过监听这个事件,来决定是否显示通话接听界面。
    void onCallReceived(String callerId, List<String> calleeIdList, String groupId,
    TUICallDefine.MediaType callMediaType, String userData);
    参数如下表所示:
    参数
    类型
    含义
    callerId
    String
    主叫 ID(邀请方)
    calleeIdList
    List
    被叫 ID 列表(被邀请方)
    groupId
    String
    群组通话 ID
    callMediaType
    通话的媒体类型,比如视频通话、语音通话
    userData
    String
    用户增加的扩展字段,详见 TUICallDefine.CallParams

    onCallCancelled

    表示此次通话主叫取消、被叫超时、拒接等,涉及多个场景,您可以通过监听这个事件来实现类似未接来电、重置 UI 状态等显示逻辑。
    主叫取消:主叫收到该回调(userId 为自己);被叫收到该回调(userId 为主叫的 ID)
    被叫超时:主叫会同时收到 onUserNoResponse 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)
    被叫拒接:主叫会同时收到 onUserReject 和 onCallCancelled 回调(userId 是自己的 ID);被叫收到 onCallCancelled 回调(userId 是自己的 ID)
    被叫忙线:主叫会同时收到 onUserLineBusy 和 onCallCancelled 回调(userId 是自己的 ID)
    异常中断:被叫接收通话失败,收到该回调(userId 是自己的 ID)
    void onCallCancelled(String userId);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    用户的 ID

    onCallBegin

    表示通话接通,主叫和被叫都可以收到,您可以通过监听这个事件来开启云端录制、内容审核等流程。
    void onCallBegin(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole);
    参数如下表所示:
    参数
    类型
    含义
    roomId
    此次通话的音视频房间 ID
    callMediaType
    通话的媒体类型,视频通话、语音通话
    callRole
    角色,枚举类型:主叫、被叫

    onCallEnd

    表示通话挂断,主叫和被叫都可以收到,您可以通过监听这个事件来显示通话时长、通话类型等信息,或者来停止云端的录制流程。
    void onCallEnd(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole, long totalTime);
    参数如下表所示:
    参数
    类型
    含义
    roomId
    此次通话的音视频房间 ID
    callMediaType
    通话的媒体类型,视频通话、语音通话
    callRole
    角色,枚举类型:主叫、被叫
    totalTime
    long
    此次通话的时长,单位:秒
    注意
    客户端的事件一般都会随着杀进程等异常事件丢失掉,如果您需要通过监听通话时长来完成计费等逻辑,建议可以使用REST API来完成这类流程。

    onCallMediaTypeChanged

    表示通话的媒体类型发生变化。
    void onCallMediaTypeChanged(TUICallDefine.MediaType oldCallMediaType,TUICallDefine.MediaType newCallMediaType);
    参数如下表所示:
    参数
    类型
    含义
    oldCallMediaType
    旧的通话类型
    newCallMediaType
    新的通话类型

    onUserReject

    通话被拒绝的回调,在1v1 通话中,只有主叫方会收到拒绝回调,在群组通话中,所有被邀请者都可以收到该回调。
    void onUserReject(String userId);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    拒绝用户的 ID

    onUserNoResponse

    对方无回应的回调。
    void onUserNoResponse(String userId);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    无响应用户的 ID

    onUserLineBusy

    通话忙线回调。
    void onUserLineBusy(String userId);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    忙线用户的 ID

    onUserJoin

    有用户进入此次通话的回调。
    void onUserJoin(String userId);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    加入当前通话的用户 ID

    onUserLeave

    有用户离开此次通话的回调。
    void onUserLeave(String userId);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    离开当前通话的用户 ID

    onUserVideoAvailable

    用户是否开启视频上行回调。
    void onUserVideoAvailable(String userId, boolean isVideoAvailable);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    通话用户 ID
    isVideoAvailable
    boolean
    用户视频是否可用

    onUserAudioAvailable

    用户是否开启音频上行回调。
    void onUserAudioAvailable(String userId, boolean isAudioAvailable);
    参数如下表所示:
    参数
    类型
    含义
    userId
    String
    用户 ID
    isAudioAvailable
    boolean
    用户音频是否可用

    onUserVoiceVolumeChanged

    用户通话音量的回调。
    void onUserVoiceVolumeChanged(Map<String, Integer> volumeMap);
    参数如下表所示:
    参数
    类型
    含义
    volumeMap
    Map<String, Integer>
    音量表,根据每个 userId 可以获取对应用户的音量大小,音量最小值为0,音量最大值为100

    onUserNetworkQualityChanged

    用户网络质量的回调。
    void onUserNetworkQualityChanged(List<TUICallDefine.NetworkQualityInfo> networkQualityList);
    参数如下表所示:
    参数
    类型
    含义
    networkQualityList
    List
    网络状态,根据每个 userId 可以获取对应用户当前的网络质量

    onKickedOffline

    当前用户被踢下线:此时可以 UI 提示用户,并再次重新调用初始化。
    void onKickedOffline();

    onUserSigExpired

    在线时票据过期:此时您需要生成新的 userSig,并再次重新调用初始化。
    void onUserSigExpired();
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持