运行示例项目(Demo)
融云音视频产品提供一个 QuickDemo 示例应用项目(Github · Gitee),集中演示了融云实时音视频产品 音视频通话、音视频会议、低延迟直播 在 Android 端的功能,以便开发者体验产品,快速集成,实现单群聊、音视频通话、语音聊天室、娱乐直播、教学课堂、多人会议等场景需求。
QuickDemo 按场景和功能分为多个模块,提供 callapp 和 rtcapp 两个应用,对主要功能进行演示。QuickDemo 开放源代码,您可以对感兴趣的部分进行代码改造,以便进一步了解细节。
环境要求
- 使用 Android Studio 3.0 或以上版本。如果您尚未安装,请在 官网下载 并安装。
- Android SDK 4.4 或以上版本,即 minSdkVersion >= 19。
- Android Build Tools 21 或以上版本。为获得更好的编译体验,建议使用最新版。
- JDK 1.7 或以上版本。
融云开发者账户
-
注册开发者账号。注册成功后,控制台会默认自动创建您的首个应用,默认生成开发环境下的 App Key,使用国内数据中心。
-
获取开发环境的应用 App Key。如不使用默认应用,请参考 如何创建应用,并获取对应环境 App Key 和 App Secret。
提示每个应用具有两个不同的 App Key,分别对应开发环境与生产环境,两个环境之间数据隔离。在您的应用正式上线前,可切换到使用生产环境的 App Key,以便上线前进行测试和最终发布。
-
如果仅为体验 QuickDemo 创建应用,建议选择国内数据中心。如果选择海外数据中心,则需要额外在 QuickDemo 中修改 SDK 连接的服务地址。配置方法可参见 数据中心。
开通音视频服务
开发环境下的每个应用均可享有 10000 分钟免费体验时长。如果在开发环境下开通音视频服务,可直接按照以下步骤,开通音视频服务即可开始免费体验和测试。免费体验时长用完即止。
如果在生产环境下开通音视频服务,则需要先预存费用,才可开通。详情请参考 开通音视频服务。
设置设备
示例应用必须部署到搭载 Android 4.4 或更高版本的 Android 设备或 Android 模拟器,鸿蒙系统也可以使用。
- 如要使用 Android 设备,请按照在 硬件设备上运行应用 中的说明进行操作。
- 如要使用 Android 模拟器,您可以使用 Android Studio 附带的 Android 虚拟设备 (AVD) 管理器创建虚拟设备并安装模拟器。
运行 QuickDemo
在运行 QuickDemo 前请确保已完成上述步骤。以下是检查清单:
- 已注册融云开发者账户
- 已准备好 App Key 和 App Secret
- 已开通音视频服务免费体验,且已等待 30 分钟。
-
克隆下载示例代码。
git clone https://github.com/rongcloud/rtc-quickdemo-android.git
-
在 Android Studio 中,选择 Open an Existing Project。等待导入完成。确保 Gradle 成功加载完 Maven 依赖库,此步视网络情况大约需要 2~5 分钟。
-
打开
DemoApplication.java
文件,填入从控制台获取的 App Key 与 App Secret:路径:Project 视图
<demo-app-name>/src/main/java/cn/rongcloud/demo/
/**
* TODO: 请替换成您自己申请的 AppKey
*/
public static final String APP_KEY = "";
/**
* TODO: 请替换成您自己 AppKey 对应的 Secret
* 这里仅用于模拟从 App Server 获取 UserID 对应的 Token, 开发者在上线应用时客户端代码不要存储该 Secret,
* 否则有被用户反编译获取的风险,拥有 Secret 可以向融云 Server 请求高级权限操作,对应用安全造成恶劣影响。
*/
public static final String APP_SECRET = ""; -
在 Android Studio 顶部选择
callapp
或rtcapp
,点击运行。 -
运行成功后输入用户 ID,即可进入体验。建议在真实设备上运行。
本教程中直接在客户端代码中写入 APP_SECRET
的行为仅为演示目的。
APP_SECRET
可用来获取用户身份令牌(Token),以及实现人员禁言、房间踢人等高级能力。
存储在客户端代码里很容易被反编译导致泄露。
APP_SECRET
一旦泄露,攻击者就可以盗取 SDK 服务流量,或进行高权限破坏性操作。
正确的方式是将 APP_SECRET
存储在您的应用服务端,并提供面向应用客户端的接口。
更多 详情请参见 音视频服务端开发文档。