即时通信 IM Android&iOS&Flutter

这篇说说 TUICallKit 组件的通话状态回调监听方法,包括通话开始、结束及网络质量变化等事件的代码示例,并建议在 Application 或主界面设置监听以避免回调被清除。 监听回调:通过 TUICallObserver 实现 onCallBegin、onCallEnd 等回调方法。 平台示例:提供 Android、iOS、Flutter 多平台代码。 注意事项:Android 需在 Application 或。

相关产品
即时通信 IM 产品页,含版本规格、价格与购买入口。

这篇说说 TUICallKit 组件通话状态回调的使用。

一、通话状态监听

如果你的业务需要监听通话的状态,例如通话开始、结束等通话过程中的事件,可以参见以下代码示例:

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 TUICallEngineTUICallEngine.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) { //你的回调处理逻辑 }, 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) { //你的回调处理逻辑 } ……))TUICallEngine.instance.addObserver(observer);

注意:在 Android 平台设置 TUICallObserver 监听回调,需保证回调所在类不会被清除。

注意:例如:不建议在 LoginActivity 中添加监听,LoginActivity 销毁的时候,回调也会被清除;建议在应用的 Application 中或者应用主界面进行监听。

赞 (0)
上一篇 4天前
下一篇 4天前