监控通话状态

本文介绍 TUICallKit 组件通话状态回调的使用,您可以通过注册通话回调来监听通话的开始、结束,通话成员的加入、离开等事件。
注意:
在 Android 平台设置 TUICallObserver 监听回调时,需要确保回调所在的类不会被销毁。例如,不建议在 LoginActivity 中添加监听,因为 LoginActivity销毁时,回调也会随之清除;建议将监听设置在应用的 Application 类或应用的主界面中。

通话状态回调

用于感知整个通话生命周期中的关键状态变化。
Kotlin
Swift
Dart
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 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 TUICallEngine

TUICallEngine.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实时展示成员动态(如加入、离开、拒绝等)。
Kotlin
Swift
Dart
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 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 TUICallEngine

TUICallEngine.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);
}