视频互动直播是当前比较热门的玩法,我们经常见到有PK 连麦、直播答题、一起 KTV、电商直播、互动大班课、视频相亲等。本文将演示如何通过声网视频 SDK 在 Android 端实现一个视频直播应用。
点击这里注册声网账号后,开发者每个月可获得 10000 分钟的免费使用额度,可实现各类实时音视频场景。
话不多说,我们开始动手实操。
一些前提条件
- 声网开发者帐户
- Android Studio
- Android 开发基础知识
一、 通过开源Demo,体验视频直播
可能有些人,还不了解我们要实现的功能最后是怎样的。所以我们在 GitHub上提供一个开源的基础视频直播示例项目,在开始开发之前你可以通过该示例项目体验视频直播的体验效果。 Github:GitHub - Meherdeep/agora-android-live-streaming 1
在这里,我添加了两个直播流,同时可以让多个观众订阅它。
二、 视频直播的技术原理
我们在这里要实现的是视频直播,声网的视频直播可以实现互动效果,所以也经常叫互动直播。你可以理解为是多个用户通过加入同一个频道,实现的音视频的互通,而这个频道的数据,会通过声网的 SD-RTN™ 实时网络来进行低延时传输的。
需要特别说明的是,声网互动直播不同于视频通话。视频通话不区分主播和观众,所有用户都可以发言并看见彼此;而互动直播的用户分为主播和观众,只有主播可以自由发言,且被其他用户看见。 下图展示在 App 中集成声网互动直播的基本工作流程:
实现互动直播的步骤如下:
1.设置角色:互动直播频道中,用户角色可以是主播或者观众。主播在频道内发布音视频流,观众仅可订阅音视频流。
2.获取 Token:当 App 客户端加入频道时,你需要通过 Token 验证用户身份。App 客户端向 App 服务器发送请求,并获取 Token,然后在客户端加入频道时验证用户身份。
3.加入频道:调用 joinChannel 创建并加入频道。使用同一频道名称的 App 客户端默认加入同一频道
4.在频道内发布和订阅音视频:加入频道后,角色为主播的 App 客户端可以发布音视频。对于角色为观众的客户端,如果想要发布音视频,可以调用 setClientRole 切换用户角色。
App 客户端加入频道需要以下信息:
- 频道名称:用于标识直播频道的字符串。
- App ID:声网随机生成的字符串,用于识别你的 App,可声网控制台获取,(声网控制台链接:Dashboard
- 用户ID:用户的唯一标识。你需要自行设置用户 ID,并确保它在频道内是唯一的。
- Token:在测试或生产环境中,你的 App 客户端会从你的服务器中获取 Token。为方便快速测试,你也可以获取临时 Token。临时 Token 的有效期为 24 小时。
三、 开发环境
声网 SDK 的兼容性良好,对硬件设备和软件系统的要求不高,开发环境和测试环境满足以下条件即可: • Android SDK API Level >= 16 • Android Studio 2.0 或以上版本 • 支持语音和视频功能的真机 • App 要求 Android 4.1 或以上设备
以下是本文的开发环境和测试环境:
开发环境
• Windows 10 家庭中文版 • Java Version SE 8 • Android Studio 3.2 Canary 4
测试环境
• Samsung Nexus (Android 4.4.2 API 19) • Mi Note 3 (Android 7.1.1 API 25)
如果你此前还未接触过声网 Agora SDK,那么你还需要做以下准备工作:
•