文档

Android UISDK集成手册

更新时间:

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

1 概述

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

2 环境配置

2.1 添加 Kotlin 支持

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

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

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

apply plugin:'kotlin-android'
apply plugin:'kotlin-android-extensions'

在 dependencies 中添加kotlin语法支持

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

2.2 下载SDK

下载地址:sdk.zip

2.3 Android 工程配

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

    implementation fileTree(dir:'libs', include:['*.aar'])
    sample
  2. 添加gradle 依赖配置

    implementation "com.android.support:support-annotations:28.0.0"
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:support-v4:28.0.0"
    implementation "com.android.support:recyclerview-v7:28.0.0"
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
    implementation "io.reactivex.rxjava2:rxjava:2.1.14"
    implementation 'com.alibaba:fastjson:1.1.73.android'
//okhttp:3.14.1 支持Android 5.0+,如果需要支持Android 4.0+,可以使用3.10.0版本
    implementation "com.squareup.okhttp3:okhttp:3.14.1"

    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation "com.yqritc:recyclerview-flexibledivider:1.2.9"
    implementation "com.github.afollestad.material-dialogs:core:0.8.5.6@aar"
    implementation "com.nostra13.universalimageloader:universal-image-loader:1.9.3"
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50"
  1. ABI配置,(gradle有多种配置方式,这里这用一种,如果工程中已有类似配置的可以忽略)

    android {
    ...
    defaultConfig {
    ...
    ndk {
    // Specifies the ABI configurations of your native
    // libraries Gradle should build and package with your APK.
       abiFilters 'armeabi','armeabi-v7a'
    }
    }
    }
  2. proguard 配置proguard 配置 AliMeetingUISDK proguard 已经在内部集成,用户不需要额外配置proguard规则

3 代码集成流程

3.1 获取入会信息

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

data classAliMeetingDetailConfig(
    val meetingAppId:String="",//必填
    val meetingToken:String="",//必填
    val meetingDomain:String="",//必填
    val meetingCode:String="",//必填
    val meetingUUID:String="",//必填
    val memberUUID:String="",//必填
    val rateLink:String?=null//选填,评分页连接,如果不需要评分页,则可以跳过
)

3.2 配置入会初始状态

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

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

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

定制用户头像,请覆盖资源  ic_meeting_light_default_avatar.png
定制返回图标,请覆盖资源  ic_meeting_light_back.png
定制加载动画,请覆盖资源  gif_meeting_light_loading.gif
定制加载失败图标,请覆盖资源 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 初始化版本

  • 本页导读 (0)
文档反馈