SDKsFlutter商业版
处理通话事件
集中设置 Flutter SDK 的通话信令 listener。
应用初始化通话模块时集中设置一次 OnSignalingListener:
Future<void> registerCallListener() {
return OpenIM.iMManager.signalingManager.setSignalingListener(
OnSignalingListener(
onReceiveNewInvitation: handleIncomingCall,
onInviteeAccepted: handleInviteeAccepted,
onInviteeRejected: handleInviteeRejected,
onInvitationCancelled: handleInvitationCancelled,
onInvitationTimeout: handleInvitationTimeout,
onInviteeAcceptedByOtherDevice: handleAcceptedElsewhere,
onInviteeRejectedByOtherDevice: handleRejectedElsewhere,
onHangup: handleHangup,
onRoomParticipantConnected: handleParticipantConnected,
onRoomParticipantDisconnected: handleParticipantDisconnected,
onStreamChange: handleStreamChange,
),
);
}通话事件涵盖邀请生命周期、成员进出与媒体流状态变更。客户端应以 roomID 作为通话状态合并标识,参与者状态结合用户 ID 进行合并维护。自定义信令事件监听请参考发送自定义信令。
SignalingManager 只保存一个 listener 实例,后一次设置会覆盖先前设置的回调。由于 SDK 未提供注销方法,退出登录或切换账号时,应用应停止向旧状态写入,并在新账号登录后重新传入完整的 listener 实例进行覆盖。
这个页面有帮助吗?