本文详细介绍如何快速集成 Agora Cocos Creator SDK,并在你自己的 app 里实现基础的语音通话。
Cocos Creator 2.3.4 或以上(本文界面描述基于 Cocos Creator 2.4.3)
操作系统与集成开发环境要求:
目标平台 | 操作系统版本 | 集成开发环境版本 |
---|---|---|
Android | Android 4.1 或以上 |
|
iOS | iOS 8.0 或以上 | Xcode 9.0 或以上 |
有效的 Cocos 账户和 Cocos App ID。
参考以下步骤创建一个 Cocos Creator 项目。
打开 Cocos Creator 项目,点击界面右侧的服务打开服务面板。
点击 AppID 后的 按钮并点击设定 Cocos AppID。
点击下拉框,选择一个游戏,并点击关联,将该游戏与你的项目关联。
向下滚动服务面板,找到并点击 Agora RTC。
点击 Agora RTC 后的开通服务按钮 ,仔细阅读弹窗内容,并点击确认开通。
在 Agora RTC 面板底部,选择 SDK 类型为 Audio,并点击保存,即可获取 Agora Cocos Creator SDK。
成功获取 SDK 后,Cocos Creator 会在你的 Cocos Creator 项目中自动添加获取设备权限的代码,你无需另行配置。
Cocos Creator 也会使用你的 Cocos Creator 账户为你自动注册 Agora 账户并创建 Agora 项目。你可以点击 Agora RTC 面板上的前往控制台,打开 Agora 控制台。
为提高项目的安全性,Agora 使用 Token(动态密钥)对即将加入频道的用户进行鉴权。
为了方便测试,Agora 控制台提供生成临时 Token 的功能,具体步骤如下:
现在,我们已经将 Agora Cocos Creator SDK 集成到项目中了。你可以根据需要创建组件脚本及场景,并将组件脚本添加到场景节点中。详见创建和使用组件脚本。
接下来我们要在组件脚本中调用 Agora Cocos Creator SDK 提供的核心 API 实现基础的音频互动直播功能,API 调用时序见下图。
根据场景需要,为你的项目创建音频互动直播的用户界面。如果已有界面,可以直接查看初始化 Agora 引擎。
Agora 推荐你添加如下 UI 元素:
在调用其他 Agora API 前,你需要初始化 Agora 引擎。你需要在该步骤中填入 Agora 项目的 App ID。详见获取 Agora App ID。
调用 init
,传入获取到的 App ID,即可初始化 Agora 引擎。
你也可以根据需求,在初始化时注册想要监听的回调事件。如注册用户加入频道和离开频道的回调。
// 初始化 Agora 引擎。需将 YOUR_APPID 替换为你的 Agora App ID。
agora.init("YOUR_APPID");
// 注册回调。
initAgoraEvents: function () {
if (agora) {
agora.on('joinChannelSuccess', this.onJoinChannelSuccess, this);
agora.on('leaveChannel', this.onLeaveChannel, this);
agora.on('warning', this.onWarning, this);
agora.on('error', this.onError, this);
agora.on('userJoined', this.onUserJoined, this);
agora.on('userOffline', this.onUserOffline, this);
}
}
完成设置角色后,你就可以调用 joinChannel
加入频道。
在 joinChannel
中你需要将 YOUR_TOKEN
替换成你自己生成的 Token。
// 对于 v3.1.2 之前的 SDK,如果频道中有 Agora Web SDK,需调用该方法开启 Agora Cocos Creator SDK 和 Agora Web SDK 互通。
// v3.1.2 及之后的 SDK 在通信和互动直播场景下均自动开启了与 Agora Web SDK 的互通,无需调用该方法。
agora.enableWebSdkInteroperability(true);
// 使用 Token 加入频道。
agora.joinChannel("YOUR_TOKEN", “channel5”, "Extra Optional Data", 0);
根据场景需要,如结束通话、关闭 app 或 app 切换至后台时,调用 leaveChannel
离开当前通话频道。
agora.leaveChannel();
离开频道后,如果你想退出应用或者释放 Agora 引擎的内存,需调用 release
方法销毁 Agora 引擎。
agora.release();
我们建议你在连接 Android 或 iOS 真机后,编译并运行项目。详见通过编辑器编译和运行。
当成功开始语音通话时,你可以听到远端用户的声音。
Q: 我设置了正确的发布路径,为什么收到了 xxx.o:No such file or directory
报错?
A: 导致该错误的原因是发布路径太长,你需要缩短发布路径,例如将发布路径修改为磁盘根目录下。
我们在 GitHub 上提供一个开源的语音通话示例项目 Voice-Call-for-Mobile-Gaming,你可以前往下载或查看源代码。