本文介绍如何在你的 iOS app 里实现元语聊的重要功能。
元语聊场景提供语聊者和游客两种默认角色,角色权限说明如下:
语聊者 | 游客 | |
---|---|---|
发布音频流 | ✔ | ✘ |
订阅远端用户的音频流 | ✔ | ✔ |
本地渲染虚拟形象 | ✔ | ✔ |
同步虚拟形象给远端用户 | ✔ | ✘ |
互动(占座) | ✔ | ✘ |
实现元语聊的总体流程如下:
开始前,请确保你的开发环境满足以下条件:
参考以下步骤开通元语聊服务:
搭建元语聊场景需要使用 Agora RTC 4.0.0 元语聊特殊版 SDK。该版本是官网 Agora RTC SDK 4.0.0 的分支版本,主要新增了一些为元语聊场景定制的功能。
参考以下步骤集成 Agora RTC 4.0.0 元语聊特殊版 SDK:
联系销售获取 Agora RTC 4.0.0 元语聊特殊版 SDK,并解压。
打开解压文件,将 libs
路径下的所有文件拷贝到你的项目路径下。
打开 Xcode,添加对应动态库,确保添加的动态库 Embed 属性设置为 Embed & Sign。
本节介绍在集成 Agora RTC 4.0.0 元语聊特殊版 SDK 后,如何实现元语聊核心业务模块的功能:
在搭建元语聊场景之前,建议你先参考官网 Agora RTC SDK 4.0.0 的快速开始,实现一个基础的语音通话。
3D 场景管理需要用到 Agora SDK 的以下类:
AgoraMetaViewController
、AgoraMetachatKit
和 AgoraMetachatScene
类:提供元语聊的核心功能。AgoraRtcEngineKit
类:提供实时音视频功能。具体的 API 调用时序如下,你还可以同时参考示例项目 Agora-MetaChat 中的源码。
游客可以上麦成为语聊者,从而发布音频流、向所有人展示自己的虚拟形象。
上麦的 API 调用时序如下:
为用户的音频流和背景音乐添加空间音效,目前仅支持本地直角坐标系计算方案,详见空间音效。
联系声网销售获取元语聊场景的示例项目,查看其中的源代码。
API | 实现功能 |
---|---|
sharedEngineWithAppId |
创建并初始化 RtcEngine 。 |
setChannelProfile |
将频道场景设为直播(LiveBroadcasting ) 。 该场景下有两种用户角色,可以通过 setClientRole 设置。 |
setAudioProfile |
将音频编码属性设为 Default ,音频场景设为 GameStreaming 。 |
setClientRole |
设置用户角色。进入场景时,需要将语聊者的用户角色设为 Broadcaster 、游客的用户角色设为 Audience 。 游客上麦后,需要先调用该方法将用户角色切换为 Broadcaster ,才能在房间里发布音频流。 |
joinChannelByToken |
加入 RTC 频道。用户加入 RTC 频道后才能接收或发布音频流。你也可以通过 mediaOptions 参数设置频道场景和用户角色。 |
leaveChannel |
离开 RTC 频道。 |
muteAllRemoteAudioStreams |
取消或恢复订阅所有远端用户的音频流。 |
AgoraLocalSpatialAudioKit |
使用本地直角坐标系计算方案实现空间音效。 |