监控通话状态
本文介绍 TUICallKit 组件通话状态回调的使用,您可以通过注册通话回调来监听通话的开始、结束,通话成员的加入、离开等事件。
注意:
在 Android 平台设置 TUICallObserver 监听回调时,需要确保回调所在的类不会被销毁。例如,不建议在 LoginActivity 中添加监听,因为 LoginActivity销毁时,回调也会随之清除;建议将监听设置在应用的 Application 类或应用的主界面中。
通话状态回调
用于感知整个通话生命周期中的关键状态变化。
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 onCallReceived(callId: String?, callerId: String?, calleeIdList: MutableList<String>?, mediaType: TUICallDefine.MediaType?, info: TUICallDefine.CallObserverExtraInfo?) {}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 onCallNotConnected(callId: String?, mediaType: TUICallDefine.MediaType?, reason: TUICallDefine.CallEndReason?, userId: String?, info: TUICallDefine.CallObserverExtraInfo?) {}……}private fun initData() {TUICallEngine.createInstance(context).addObserver(observer)}
import TUICallEngineTUICallEngine.createInstance().addObserver(self)func onCallReceived(_ callId: String, callerId: String, calleeIdList: [String], mediaType: TUICallMediaType, info: TUICallObserverExtraInfo) {}func onCallBegin(callId: String, mediaType: TUICallMediaType, info: TUICallObserverExtraInfo) {}func onCallEnd(callId: String, mediaType: TUICallMediaType, reason: TUICallEndReason, userId: String, totalTime: Float, info: TUICallObserverExtraInfo) {}func onCallNotConnected(callId: String, mediaType: TUICallMediaType, reason: TUICallEndReason, userId: String, info: TUICallObserverExtraInfo) {}
import 'package:tencent_calls_engine/tencent_calls_engine.dart';TUICallObserver observer = TUICallObserver(onCallReceived: (String callId, String callerId, List<String> calleeIdList, TUICallMediaType mediaType, CallObserverExtraInfo info) {}, onCallBegin: (String callId, TUICallMediaType mediaType, CallObserverExtraInfo info) {}, onCallEnd: (String callId, TUICallMediaType mediaType, CallEndReason reason, String userId, double totalTime, CallObserverExtraInfo info) {}, onCallNotConnected: (String callId, TUICallMediaType mediaType, CallEndReason reason, String userId, CallObserverExtraInfo info) {}……)void addObserver() {TUICallEngine.instance.addObserver(observer);}
通话成员动态回调
追踪参与通话用户的个体行为或状态变更,主要用于UI实时展示成员动态(如加入、离开、拒绝等)。
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 onUserJoin(userId: String?) {}override fun onUserLeave(userId: String?) {}override fun onUserInviting(userId: String?) {}override fun onUserReject(userId: String?) {}……}private fun initData() {TUICallEngine.createInstance(context).addObserver(observer)}
import TUICallEngineTUICallEngine.createInstance().addObserver(self)func onUserJoin(userId: String) {}func onUserLeave(userId: String) {}func onUserInviting(userId: String) {}func onUserReject(userId: String) {}……
import 'package:tencent_calls_engine/tencent_calls_engine.dart';TUICallObserver observer = TUICallObserver(onUserJoin: (String userId) {}, onUserLeave: (String userId) {}, onUserInviting: (String userId) {}, onUserReject: (String userId) {},……)void addObserver() {TUICallEngine.instance.addObserver(observer);}