tencent cloud

Feedback

Android&iOS&Flutter

Last updated: 2024-04-03 17:23:11
    This article describes how to use call status callbacks with the TUICallKit component.

    Call State Monitoring

    If your business requires monitoring call status, such as the start and end of a call, and other events during the call, you can refer to the following code:
    Android(Kotlin)
    Android(Java)
    iOS(Swift)
    iOS(Objective-C)
    Flutter(Dart)
    private val observer: TUICallObserver = object : TUICallObserver() {
    override fun onCallBegin(roomId: TUICommonDefine.RoomId?, callMediaType: TUICallDefine.MediaType?, callRole: TUICallDefine.Role?) {
    }
    override fun onCallEnd(roomId: TUICommonDefine.RoomId?, callMediaType: TUICallDefine.MediaType?, callRole: TUICallDefine.Role?, totalTime: Long) {
    }
    override fun onUserNetworkQualityChanged(networkQualityList: MutableList<TUICommonDefine.NetworkQualityInfo>?) {
    }
    }
    private fun initData() {
    TUICallEngine.createInstance(context).addObserver(observer)
    }
    private TUICallObserver observer = new TUICallObserver() {
    @Override
    public void onCallBegin(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole) {
    }
    public void onCallEnd(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType,TUICallDefine.Role callRole, long totalTime) {
    }
    public void onUserNetworkQualityChanged(List<TUICommonDefine.NetworkQualityInfo> networkQualityList) {
    }
    };
    
    private void initData(){
    TUICallEngine.createInstance(context).addObserver(observer);
    }
    import TUICallEngine
    
    TUICallEngine.createInstance().addObserver(self)
    
    public func onCallBegin(roomId: TUIRoomId, callMediaType: TUICallMediaType, callRole: TUICallRole) {
    
    }
    public func onCallEnd(roomId: TUIRoomId, callMediaType: TUICallMediaType, callRole: TUICallRole, totalTime: Float) {
    
    }
    public func onUserNetworkQualityChanged(networkQualityList: [TUINetworkQualityInfo]) {
    
    }
    #import <TUICallEngine/TUICallEngine.h>
    
    [[TUICallEngine createInstance] addObserver:self];
    
    - (void)onCallBegin:(TUIRoomId *)roomId callMediaType:(TUICallMediaType)callMediaType callRole:(TUICallRole)callRole {
    
    }
    - (void)onCallEnd:(TUIRoomId *)roomId callMediaType:(TUICallMediaType)callMediaType callRole:(TUICallRole)callRole totalTime:(float)totalTime {
    
    }
    - (void)onUserNetworkQualityChanged:(NSArray<TUINetworkQualityInfo *> *)networkQualityList {
    
    }
    TUICallObserver observer = TUICallObserver(
    onError: (int code, String message) {
    // Your callback handling logic
    }, onCallBegin: (TUIRoomId roomId, TUICallMediaType callMediaType, TUICallRole callRole) {
    // Your callback handling logic
    }, onCallEnd: (TUIRoomId roomId, TUICallMediaType callMediaType, TUICallRole callRole, double totalTime) {
    // Your callback handling logic
    },, onUserNetworkQualityChanged: (List<TUINetworkQualityInfo> networkQualityList) {
    // Your callback handling logic
    }, onCallReceived: (String callerId, List<String> calleeIdList, String groupId, TUICallMediaType callMediaType) {
    // Your callback handling logic
    }
    ))
    
    TUICallEngine.instance.addObserver(observer);
    Note:
    On the Android platform, when setting TUICallObserver to listen for callbacks, ensure that the class hosting the callback will not be cleared. For example, it is not recommended to add a listener in LoginActivity, as when LoginActivity is destroyed, the callback will also be cleared; it is suggested to listen in the application's Application class or the main application interface.
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support