SDKsReact Native商业版
处理通话事件
使用 OpenIM React Native SDK 监听通话事件。
通话相关事件用于接收邀请状态、参与者状态和媒体流状态。邀请类事件从回调参数的 invitation 读取房间信息;媒体流变化直接提供 roomID。发送和接收自定义信令见发送自定义信令。
事件参数
| 事件 | 回调参数类型 | 常用字段 |
|---|---|---|
OnReceiveNewInvitation | OnReceiveNewInvitationPayload | invitation、userID、participant、offlinePushInfo。 |
OnInviteeAccepted | OnInviteeAcceptedPayload | invitation、userID、participant、opUserPlatformID。 |
OnInviteeRejected | OnInviteeRejectedPayload | invitation、userID、participant、opUserPlatformID。 |
OnInvitationCancelled | OnInvitationCancelledPayload | invitation、userID、participant、offlinePushInfo。 |
OnInvitationTimeout | OnReceiveNewInvitationPayload | invitation、userID、participant、offlinePushInfo。 |
OnInviteeAcceptedByOtherDevice | OnInviteeAcceptedPayload | invitation、userID、participant、opUserPlatformID。 |
OnInviteeRejectedByOtherDevice | OnInviteeRejectedPayload | invitation、userID、participant、opUserPlatformID。 |
OnHangUp | OnHangUpPayload | invitation、userID、offlinePushInfo。 |
OnRoomParticipantConnected | OnRoomParticipantConnectedPayload | invitation、groupID、participant。 |
OnRoomParticipantDisconnected | OnRoomParticipantDisconnectedPayload | invitation、groupID、participant。 |
OnStreamChange | OnStreamChangePayload | roomID、streamType、mute。 |
使用 invitation.roomID 或 roomID 区分通话;参与者信息中使用 participant.userInfo.userID 区分用户。
function handleReceiveNewInvitation(payload: OnReceiveNewInvitationPayload) {
// ...
}
function handleInviteeAccepted(payload: OnInviteeAcceptedPayload) {
// ...
}
function handleInviteeRejected(payload: OnInviteeRejectedPayload) {
// ...
}
function handleInvitationCancelled(payload: OnInvitationCancelledPayload) {
// ...
}
function handleInvitationTimeout(payload: OnReceiveNewInvitationPayload) {
// ...
}
function handleInviteeAcceptedByOtherDevice(payload: OnInviteeAcceptedPayload) {
// ...
}
function handleInviteeRejectedByOtherDevice(payload: OnInviteeRejectedPayload) {
// ...
}
function handleHangUp(payload: OnHangUpPayload) {
// ...
}
function handleRoomParticipantConnected(payload: OnRoomParticipantConnectedPayload) {
// ...
}
function handleRoomParticipantDisconnected(payload: OnRoomParticipantDisconnectedPayload) {
// ...
}
function handleStreamChange(payload: OnStreamChangePayload) {
// ...
}
// 设置监听
OpenIMSDK.on(OpenIMEvent.OnReceiveNewInvitation, handleReceiveNewInvitation);
OpenIMSDK.on(OpenIMEvent.OnInviteeAccepted, handleInviteeAccepted);
OpenIMSDK.on(OpenIMEvent.OnInviteeRejected, handleInviteeRejected);
OpenIMSDK.on(OpenIMEvent.OnInvitationCancelled, handleInvitationCancelled);
OpenIMSDK.on(OpenIMEvent.OnInvitationTimeout, handleInvitationTimeout);
OpenIMSDK.on(OpenIMEvent.OnInviteeAcceptedByOtherDevice, handleInviteeAcceptedByOtherDevice);
OpenIMSDK.on(OpenIMEvent.OnInviteeRejectedByOtherDevice, handleInviteeRejectedByOtherDevice);
OpenIMSDK.on(OpenIMEvent.OnHangUp, handleHangUp);
OpenIMSDK.on(OpenIMEvent.OnRoomParticipantConnected, handleRoomParticipantConnected);
OpenIMSDK.on(OpenIMEvent.OnRoomParticipantDisconnected, handleRoomParticipantDisconnected);
OpenIMSDK.on(OpenIMEvent.OnStreamChange, handleStreamChange);
// 取消监听
OpenIMSDK.off(OpenIMEvent.OnReceiveNewInvitation, handleReceiveNewInvitation);
OpenIMSDK.off(OpenIMEvent.OnInviteeAccepted, handleInviteeAccepted);
OpenIMSDK.off(OpenIMEvent.OnInviteeRejected, handleInviteeRejected);
OpenIMSDK.off(OpenIMEvent.OnInvitationCancelled, handleInvitationCancelled);
OpenIMSDK.off(OpenIMEvent.OnInvitationTimeout, handleInvitationTimeout);
OpenIMSDK.off(OpenIMEvent.OnInviteeAcceptedByOtherDevice, handleInviteeAcceptedByOtherDevice);
OpenIMSDK.off(OpenIMEvent.OnInviteeRejectedByOtherDevice, handleInviteeRejectedByOtherDevice);
OpenIMSDK.off(OpenIMEvent.OnHangUp, handleHangUp);
OpenIMSDK.off(OpenIMEvent.OnRoomParticipantConnected, handleRoomParticipantConnected);
OpenIMSDK.off(OpenIMEvent.OnRoomParticipantDisconnected, handleRoomParticipantDisconnected);
OpenIMSDK.off(OpenIMEvent.OnStreamChange, handleStreamChange);组件销毁、退出登录或切换账号时,应取消监听。
这个页面有帮助吗?