实现低延迟直播
本教程介绍如何使用融云纯音频核心能力库 RCUnityAudioRTCLib
实现纯音频直播业务。
环境准备
Android
- (SDK ≧ 5.6.3)使用 Android 5.0(API 21)或更高版本;
- (SDK < 5.6.3)使用 Android 4.4(API 19)或更高版本;推荐使用 Android 5.0(API 21)。
- Android Studio 3.0 或以上版本。
- 由于手机性能及带宽影响,建议单次纯音频通话或房间内不超过 32 人。
iOS
- iOS 9.0 及以上。
- Xcode 9.0 或以上版本。
- 由于手机性能及带宽影响,建议单次纯音频通话或房间内不超过 32 人。
步骤 1:开通服务
融云开发者账户是使用融云 SDK 产品的必要条件。在开始之前,请先注册开发者账户。注册后,控制台将自动为你创建一个应用,默认为开发环境应用,使用国内数据中心。请获取该应用的 App Key,在本教程中使用。
您在融云创建的应用默认不会启用音视频服务。在使用融云提供的任何音视频服务前,您需要前往控制台,为应用开通音视频服务。
具体步骤请参阅开通音视频服务。
提示
服务开通、关闭等设置完成后 15 分钟后生效。
步骤 2:导入 SDK
您需要导入融云纯音频核心能力库 RCUnityAudioRTCLib
,和 RTC 业务所依赖的即时通讯能力库 RCUnityIMLib
。请前往融云官网 SDK 下载页面获取相关 SDK。
- 在项目 Assets 目 录右键单击选择 Import Package > Custom Package。
- 选择 RCUnityIMLib.unitypackage 和 RCUnityAudioRTCLib.unitypackage 资源包,在 Import Unity Package 对话框选择 All,并执行 Import 导入全部资源。
- 在 Unity 项目的 Build Settings 对话框切换当前平台到 iOS 或 Android,然后执行 Build And Run。
导入命名空间
使用 SDK 功能前,需要导入以下命名空间:
C #
using cn_rongcloud_im_unity;
using cn_rongcloud_rtc_unity;
具体步 骤请参阅导入 SDK。
步骤 3:代码混淆(Android)
若开发者发布的 App 启用代码混淆,请务必在 app/proguard-rules.pro 文件添加如下配置:
C #
-keepattributes Exceptions,InnerClasses
-keepattributes Signature
#RongRTCLib
-keep public class cn.rongcloud.** {*;}
#RongIMLib
-keep class io.rong.** {*;}
-keep class cn.rongcloud.** {*;}
-keep class * implements io.rong.imlib.model.MessageContent {*;}
-dontwarn io.rong.push.**
-dontnote com.xiaomi.**
-dontnote com.google.android.gms.gcm.**
-dontnote io.rong.**
-ignorewarnings
步骤 4:权限配置
Android
-
在
AndroidManifest.xml
中声明 SDK 需要的所有权限。xml<!-- 音视频需要网络权限 和 监听网络状态权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 音频采集需要 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> -
如果您的应用需要支持 Android 6.0(API 级别 23)或更高版本的设备,您还需要在 App 用户使用对应功能时请求麦克风(
RECORD_AUDIO
)权限。详见 Android 开发者官方文档运行时权限与请求权限的工作流。
iOS
- 音频通话需要用到麦克风权限,请在工程的 info.plist 中添加如下键值:
- Privacy - Microphone Usage Description
- 请将工程中 Target -> Signing & Capabilities -> Background Modes 如下内容勾选:
- Audio, AirPlay, and Picture in Picture
- Remote notifications