SDKsiOS
音视频通话概览
了解 OpenIM iOS SDK 的音视频通话信令、房间信息和事件边界。
OpenIM iOS SDK 提供发起邀请、接受、拒绝、取消、挂断、查询房间和同步通话状态所需的信令 API。它负责协调谁进入哪个房间以及通话生命周期,不负责采集摄像头、播放远端媒体流或渲染通话界面。
应用需要把 SDK 返回的 roomID、token 和 liveURL 交给所选的实时音视频媒体引擎,并自行处理系统权限、音频会话、媒体轨道、弱网策略和界面状态。不要把 OpenIM iOS SDK 的信令 API 描述成一套完整的 WebRTC 媒体 SDK。
通话流程
- 调用
signalingInvite:offlinePushInfo:onSuccess:onFailure:商业版 发起单聊通话,或调用signalingInviteInGroup:offlinePushInfo:onSuccess:onFailure:发起群聊通话。 - 被邀请方从
onReceiveNewInvitation:商业版 取得OIMSignalingInfo,选择接受或拒绝。 - 接受方调用
signalingAccept:onSuccess:onFailure:,双方使用成功回调中的房间凭据接入媒体引擎。 - 通话过程中根据成员、媒体流和自定义信令 delegate 更新本地状态。
- 发起方可以取消尚未接通的邀请;任一通话参与者都可以挂断已经建立的通话。
核心数据
| 数据 | 说明 |
|---|---|
OIMInvitationInfo | 被邀请人、群组、房间、媒体类型、超时时间和会话类型。 |
OIMSignalingInfo | 当前信令操作的用户、邀请信息和离线推送信息。 |
OIMInvitationResultInfo | OpenIMServer 返回的 roomID、token、liveURL 和忙线用户列表。 |
OIMParticipantConnectedInfo | 按群组查询到的房间、邀请及参与者信息。 |
自定义信令只适合传递业务可公开的协商信息。不要在其中写入长期凭据、管理员密钥或其他敏感数据。
状态更新与事件归属
发起、接受、拒绝、取消和挂断等写操作需要分别处理成功 callback 与通话 delegate。成功 callback 表示 OpenIMServer 已接受或完成当前信令请求;delegate 反映邀请方、被邀请方、其他设备或房间参与者看到的增量状态,两者不是同一个完成信号。
邀请生命周期、成员进出房间、挂断和媒体流变化的完整监听统一见通话事件;自定义信令事件见发送自定义信令。房间和令牌查询只通过 callback 返回快照,分别见“通话信息”菜单中的三个查询页面。
概览页不注册 delegate。通话状态以 roomID 为主键;参与者状态还需要结合用户 ID。应用重新启动后的未处理邀请可以通过查询恢复;需要显示当前房间快照时,再查询房间信息。
相关页面
这个页面有帮助吗?