全部产品
云市场
云游戏

Android UISDK集成手册

更新时间:2020-02-27 10:35:49

1 概述

云视频会议AliMeetingUISDK 提供了一套用于加入视频会议的接口集合,开发者可以通过调用 AliMeetingUISDK(以下简称 SDK),可以在自己应用中快速集成阿里音视频会议功能。

2 环境配置

2.1 添加 Kotlin 支持

Android SDK使用kotlin进行开发,如果项目中已经使用了Kotlin则可以忽略该部分,具体环境配置如下
在应用最外层的build.gradle文件中添加 classpath 支持 kotlin

  1. dependencies {
  2. classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31"
  3. //其它配置
  4. }

在对应 modue 中引入kotlin的插件,添加kotlin支持

  1. apply plugin: 'kotlin-android'
  2. apply plugin: 'kotlin-android-extensions'

在 dependencies 中添加kotlin语法支持

  1. implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$leatestversion"

2.2 下载SDK

下载地址:sdk.zip

2.3 Android 工程配

  1. 下载 UI SDK、AliMeetingSDK 放入module中的libs目录如下图,在gradle中修改如下:

    1. implementation fileTree(dir: 'libs', include: ['*.aar'])

    sample

  2. 添加gradle 依赖配置

  1. implementation "com.android.support:support-annotations:28.0.0"
  2. implementation "com.android.support:appcompat-v7:28.0.0"
  3. implementation "com.android.support:support-v4:28.0.0"
  4. implementation "com.android.support:recyclerview-v7:28.0.0"
  5. implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
  6. implementation "io.reactivex.rxjava2:rxjava:2.1.14"
  7. implementation 'com.alibaba:fastjson:1.1.70.android'
  8. //okhttp:3.14.1 支持Android 5.0+,如果需要支持Android 4.0+,可以使用3.10.0版本
  9. implementation "com.squareup.okhttp3:okhttp:3.14.1"
  10. implementation 'android.arch.lifecycle:extensions:1.1.1'
  11. implementation "com.yqritc:recyclerview-flexibledivider:1.2.9"
  12. implementation "com.github.afollestad.material-dialogs:core:0.8.5.6@aar"
  13. implementation "com.nostra13.universalimageloader:universal-image-loader:1.9.3"
  14. implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'
  15. implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50"
  1. ABI配置,(gradle有多种配置方式,这里这用一种,如果工程中已有类似配置的可以忽略)
    1. android {
    2. ...
    3. defaultConfig {
    4. ...
    5. ndk {
    6. // Specifies the ABI configurations of your native
    7. // libraries Gradle should build and package with your APK.
    8. abiFilters 'armeabi', 'armeabi-v7a'
    9. }
    10. }
    11. }
  2. proguard 配置
    proguard 配置 AliMeetingUISDK proguard 已经在内部集成,用户不需要额外配置proguard规则

3 代码集成流程

3.1 获取入会信息

开发者通过与自己的服务端对接,获取入会信息AliMeetingDetailConfig相关信息,具体定义有

  1. data class AliMeetingDetailConfig(
  2. val meetingAppId: String = "", //必填
  3. val meetingToken: String = "", //必填
  4. val meetingDomain: String = "",//必填
  5. val meetingCode: String = "",//必填
  6. val meetingUUID: String = "",//必填
  7. val memberUUID: String = "",//必填
  8. val rateLink: String? = null //选填,评分页连接,如果不需要评分页,则可以跳过
  9. )

3.2 配置入会初始状态

开发者通过AliMeetingJoinConfig.Builder 构建入会信息,具体可配置信息如下

  1. class AliMeetingJoinConfig (
  2. //[必填] 入会成员UserId
  3. val userId: String,
  4. //[必填] 会议口令
  5. val meetingCode: String,
  6. //[选填] 是否默认开启摄像头,默认为true
  7. val openCameraDefault: Boolean,
  8. //[选填] 是否默认关闭麦克风,默认为false
  9. val muteAudioDefault: Boolean,
  10. //[选填] 会议详情,如果该参数不为空,则本地入会不会再调用
  11. //AliMeetingUIManager.AliMeetingDataSource 中的getDetailInfo 接口
  12. var meetingDetailConfig: AliMeetingDetailConfig?,
  13. // [选填] 是否只允许发起人静音他人,默认为 true 即表示只有发起人可以进行静音他人操作,
  14. // 设置为 false 则所有人都可以进行静音他人操作。
  15. // 如果其他人点击静音按钮需要提示,则可以重载字符串资源 meeting_can_not_mute_audio_tips
  16. val onlyMasterCanMuteAudio: Boolean,
  17. // [选填] 是否只允许发起人挂断他人,默认为true 即表示只有发起人可以进行静音他人操作,
  18. // 设置为 false 则所有人都可以进行挂断他人操作
  19. val onlyMasterCanHangUp: Boolean
  20. )

3.3 加入会议

调用AliMeetingUIManager#joinMeeting(context: Context, config: AliMeetingJoinConfig) 即可入会

3.4 会后评价页

参考章节【获取入会信息】,通过AliMeetingDetailConfig 配置 rateLink,如果rateLink 为空,则表示不需要会后评价页,否则在用户结束会议后,会跳转到对应的评价页

3.5 会议环境配置[可选]

本节环境配置用于对会中流程进行定制,如不需要可以跳过

3.5.1 配置获取会议详情

使用场景:在入会之前没有获取到会议入会信息AliMeetingDetailConfig,只有userId和meetingCode,在进入会议页面之前需要额外进行会议详情请求,导致可能出现入会前有加载状态,入会时同样有会议加载状态,加载状态可以合并
配置方式:在进入会议之前,初始化一次 AliMeetingUIManager.meetingDataSource = {},在调用 AliMeetingUIManager#joinMeeting之后,SDK会调用 AliMeetingDataSource#getDetailInfo 接口获取会议信息,获取成功后加入会议

3.5.2 配置UI

  • 配置邀请他人功能

SDK 内部不实现邀请功能,因此如果需要邀请他人,开发者可自己实现 AliMeetingUiController 接口,完成接口邀请功能定制,通过AliMeetingUIManager.uiController进行设置。如有需要请在调用AliMeetingUIManager#joinMeeting 之前进行设置

  • Activity 样式定制

请在app中覆盖style AliMeetingLight.MeetingDetail

  • 定制指定图片资源

gif 覆盖drawable 中文件即可,
png 需要覆盖 drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi

  1. 定制用户头像,请覆盖资源 ic_meeting_light_default_avatar.png
  2. 定制返回图标,请覆盖资源 ic_meeting_light_back.png
  3. 定制加载动画,请覆盖资源 gif_meeting_light_loading.gif
  4. 定制加载失败图标,请覆盖资源 ic_meeting_light_meeting_logo.png
  • 配置无静音操作权限提示

对于设置只有发起人允许进行静音操作的,如果其他人点击静音按钮需要提示时,可以覆盖 R.string.meeting_can_not_mute_audio_tips 资源,即可弹出对应的提示

4 问题排查

如遇开发问题,请通过logcat过滤AliMeeting 采集对应日志后进行反馈

5 SDK Demo 下载

下载地址: sdk-demo

SDK ReleaseNote

1.0.0.2(2020-02-24)

【修复】入会过程中挂断他人可能导致的挂断全员的问题

【修复】会中息屏后导致视频状态不正确问题

【修复】替换弹框库,解决部分手机上弹框文字无法正常显示问题

【修复】相机初始化状态异常时无法再次打开相机

1.0.0.1(2020-01-17)

sdk 初始化版本