本文介绍如何在你的 Android 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 ,并解压。
打开解压文件,将以下文件或子文件夹复制到你的项目路径中。
文件或子文件夹 | 项目路径 |
---|---|
agora-rtc-sdk.jar 文件 |
/app/libs/ |
arm64-v8a 文件夹 |
/app/src/main/jniLibs/ |
armeabi-v7a 文件夹 |
/app/src/main/jniLibs/ |
x86 文件夹 |
/app/src/main/jniLibs/ |
x86_64 文件夹 |
/app/src/main/jniLibs/ |
high_level_api 中的include 文件夹 |
/app/src/main/jniLibs/ |
scenesync.aar |
/app/libs/ |
unityLibrary-release.aar |
/app/libs/ |
本节介绍在集成 Agora RTC 4.0.0 元语聊特殊版 SDK 后,如何实现元语聊核心业务模块的功能:
在搭建元语聊场景之前,建议你先参考官网 Agora RTC SDK 4.0.0 的快速开始,实现一个基础的语音通话。
3D 场景管理需要用到 Agora SDK 的以下类:
AgoraMetaActivity
、IMetachatService
和 IMetachatScene
类:提供元语聊的核心功能。RtcEngine
类:提供实时音视频功能。具体的 API 调用时序如下,你还可以同时参考示例项目 Agora-MetaChat 中的源码。
游客可以上麦成为语聊者,从而发布音频流、向所有人展示自己的虚拟形象。
上麦的 API 调用时序如下:
为用户的音频流和背景音乐添加空间音效,目前仅支持本地直角坐标系计算方案,详见空间音效。
联系声网销售获取元语聊场景的示例项目,查看其中的源代码。
3D 场景管理相关 API 详见元语聊 API 参考。
实时音频互动、空间音效功能的核心 API 如下:
API | 实现功能 |
---|---|
create |
创建并初始化 RtcEngine 。 |
setChannelProfile |
将频道场景设为直播(CHANNEL_PROFILE_LIVE_BROADCASTING ) 。 该场景下有两种用户角色,可以通过 setClientRole 设置。 |
setAudioProfile |
将音频编码属性设为 DEFAULT ,音频场景设为 AUDIO_SCENARIO_GAME_STREAMING 。 |
setClientRole |
设置用户角色。进入场景时,需要将语聊者的用户角色设为 BROADCASTER 、游客的用户角色设为 AUDIENCE 。 游客上麦后,需要先调用该方法将用户角色切换为 BROADCASTER ,才能在房间里发布音频流。 |
joinChannel |
加入 RTC 频道。用户加入 RTC 频道后才能接收或发布音频流。你也可以通过 ChannelMediaOptions 参数设置频道场景和用户角色。 |
leaveChannel |
离开 RTC 频道。 |
muteAllRemoteAudioStreams |
取消或恢复订阅所有远端用户的音频流。 |
ILocalSpatialAudioEngine |
使用本地直角坐标系计算方案实现空间音效。 |