浏览 SDKs · Flutter
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,
    ),
  );
}

本页是 11 个非自定义信令 callback 的唯一完整归属页。邀请事件按 SignalingInfo.invitation.roomID 合并;参与者和媒体流状态同时使用 RoomCallingInfo.roomID 与用户 ID。

SignalingManager 只保存一个 listener,后一次设置会替换先前实例。固定 SDK 没有移除方法;切换账号时应停止向旧状态写入,并用新账号的完整 listener 覆盖。