Monitoring Call Status
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:
import com.tencent.qcloud.tuikit.TUICommonDefineimport com.tencent.qcloud.tuikit.tuicallengine.TUICallDefineimport com.tencent.qcloud.tuikit.tuicallengine.TUICallEngineimport com.tencent.qcloud.tuikit.tuicallengine.TUICallObserverprivate 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)}
import com.tencent.qcloud.tuikit.TUICommonDefine;import com.tencent.qcloud.tuikit.tuicallengine.TUICallDefine;import com.tencent.qcloud.tuikit.tuicallengine.TUICallEngine;import com.tencent.qcloud.tuikit.tuicallengine.TUICallObserver;private TUICallObserver observer = new TUICallObserver() {@Overridepublic void onCallBegin(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole) {}@Overridepublic void onCallEnd(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType,TUICallDefine.Role callRole, long totalTime) {}@Overridepublic void onUserNetworkQualityChanged(List<TUICommonDefine.NetworkQualityInfo> networkQualityList) {}};private void initData(){TUICallEngine.createInstance(context).addObserver(observer);}
import TUICallEngineTUICallEngine.createInstance().addObserver(self)func onCallBegin(roomId: TUIRoomId, callMediaType: TUICallMediaType, callRole: TUICallRole) {}func onCallEnd(roomId: TUIRoomId, callMediaType: TUICallMediaType, callRole: TUICallRole, totalTime: Float) {}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 {}
import 'package:tencent_calls_engine/tencent_calls_engine.dart';TUICallObserver observer = TUICallObserver(onError: (int code, String message) {}, onCallBegin: (TUIRoomId roomId, TUICallMediaType callMediaType, TUICallRole callRole) {}, onCallEnd: (TUIRoomId roomId, TUICallMediaType callMediaType, TUICallRole callRole, double totalTime) {}, onUserNetworkQualityChanged: (List<TUINetworkQualityInfo> networkQualityList) {}, onCallReceived: (String callerId, List<String> calleeIdList, String groupId, TUICallMediaType callMediaType) {}))void addObserver() {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 the observer in LoginActivity, as when LoginActivity is destroyed, the callback will also be cleared; it is suggested to observe in the application's Application class or the main application interface.