本文介绍在Android端通过标准集成(无UI)方式实现主播端推流和观众端观看直播的功能。
背景信息
主播端推流和观众端观看是互动直播的基础场景。从集成的角度看,两个场景是独立于彼此的。用户可根据业务需要选择集成两个场景或其中一个场景。例如,只需要集成主播端推流的用户可以只集成主播端,避免接入不需要的模块而增加包大小。
前提条件
- 客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key)。创建指引请参见创建应用。
- 客户端集成前,请确保已经完成服务端集成。集成指引请参见集成服务端SDK。
环境要求
- 系统版本:仅支持Android 5.0及以上版本。
- API版本:仅支持21及以上版本。
- CPU架构:仅支持实体设备架构armeabi-v7a、arm64-v8a。
重要 不支持视频采集旋转,不支持USB外接摄像头。
主播端推流
- 基于Maven添加SDK远程依赖。
- 添加阿里云依赖仓库。
将下列依赖库添加到项目工程根目录已有的
build.gradle
文件中。
// 仓库地址
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/repositories/releases' }
}
}
- 添加SDK远程依赖。
将下列依赖库添加到项目工程的
app/build.gradle
文件中。
dependencies {
def LATEST_VERSION = ''
api "com.aliyun.roompaas.biz:biz:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:chat:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:live:${LATEST_VERSION}"
}
基础版美颜(非必选配置)
dependencies {
def LATEST_VERSION = ''
api "com.aliyun.roompaas.biz:biz:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:chat:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:live:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:beauty_lite:${LATEST_VERSION}"
}
专业版美颜(非必选配置)
dependencies {
def LATEST_VERSION = ''
api "com.aliyun.roompaas.biz:biz:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:chat:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:live:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:beauty_pro:${LATEST_VERSION}"
}
说明 美颜库Queen的'1.9.1-official-pro'版本是免授权的高级美颜版本,详情请参见
美颜特效SDK。
- 配置应用权限。
主播推流直播,需要获取设备本向的摄像头使用权限,麦克风的使用仅限,WIFI网络的使用权限。在工程目录的
app/src/main/AndroidManifest.xml
文件中配置以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- 接入代码。完整的代码实现逻辑请参见Android主播端标准集成互动直播源码。
观众观看直播
- 基于Maven添加SDK远程依赖。
- 添加阿里云依赖仓库。
将下列依赖库添加到项目工程根目录已有的
build.gradle
文件中。
// 仓库地址
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/repositories/releases' }
}
}
- 添加SDK远程依赖。
将下列依赖库添加到项目工程的
app/build.gradle文件中。
dependencies {
def LATEST_VERSION = ''
api "com.aliyun.roompaas.biz:biz:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:chat:${LATEST_VERSION}"
api "com.aliyun.roompaas.biz:live:${LATEST_VERSION}"
}
- 接入代码。完整的代码实现逻辑请参见Android观众端标准集成互动直播源码。