本文介绍在Android端通过标准集成(无UI)方式实现老师端推流和学生观看(播流)的功能。

背景信息

老师端推流和观众端观看是互动课堂的基础场景。从集成的角度看,两个场景是独立于彼此的。用户可根据业务需要选择集成两个场景或其中一个场景。例如,只需要集成老师端推流的用户可以只集成老师端,避免接入不需要的模块而增加包大小。

前提条件

  • 客户端集成前,请确保已经通过控制台创建应用并获取客户端集成需要的信息(应用ID,APP Key)。创建指引请参见创建应用
  • 客户端集成前,请确保已经完成服务端集成。集成指引请参见集成服务端SDK

环境要求

  • 系统版本:支持Android 5.0及以上版本。
  • API版本:支持21及以上版本。
  • CPU架构:支持实体设备架构armeabi-v7a、arm64-v8a。
  • 其他:不支持视频采集旋转,不支持USB外接摄像头。

老师端

  1. 基于Maven添加SDK远程依赖。
    1. 添加阿里云依赖仓库
      将下面依赖库添加到项目工程根目录已有的build.gradle文件。
      // 仓库地址
      allprojects {
          repositories {
              maven { url 'https://maven.aliyun.com/nexus/content/repositories/releases' }
          }
      }
    2. 添加SDK远程依赖。
      将下面的依赖库添加到项目工程的app/build.gradle文件中。
      dependencies {
          // 互动PaaS-一体化SDK依赖
          def LATEST_VERSION = ''
          api "com.aliyun.roompaas.biz:biz:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:uibase:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:chat:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:live:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:rtc:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:whiteboard:${LATEST_VERSION}"
      }
  2. 配置应用权限。
    上课需要获取设备本身的摄像头使用权限、麦克风的使用权限、WIFI网络的使用权限。在工程目录的app/scr/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" />
  3. 写代码。

学生端

  1. 基于Maven添加SDK远程依赖。
    1. 添加阿里云依赖仓库
      将下面依赖库添加到项目工程根目录已有的build.gradle文件。
      // 仓库地址
      allprojects {
          repositories {
              maven { url 'https://maven.aliyun.com/nexus/content/repositories/releases' }
          }
      }
    2. 添加SDK远程依赖。
      将下面的依赖库添加到项目工程的app/build.gradle文件中。
      dependencies {
          // 互动PaaS-一体化SDK依赖
          def LATEST_VERSION = ''
          api "com.aliyun.roompaas.biz:biz:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:uibase:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:chat:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:live:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:rtc:${LATEST_VERSION}"
          api "com.aliyun.roompaas.biz:whiteboard:${LATEST_VERSION}"
      }
  2. 配置应用权限。
    上课需要获取设备本身的摄像头使用权限、麦克风的使用权限、WIFI网络的使用权限。在工程目录的app/scr/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" />
  3. 写代码。完整的代码实现逻辑请参见Android互动课堂学生端标准集成源码