环境要求

以下为硬性要求:
名称 作用
Android系统版本 ≥ Android 4.0
最小Android API版本 API 14
CPU架构支持 ARM64、ARMV7
集成工具 Android Studio
以下要求为非硬性要求,仅仅是开发此Demo时的开发环境,目的是为了给编译运行源码的人员提供参考。
名称 作用
Android Studio版本 3.1.3
JRE 1.8.0_152-release-1024-b01 x86_64
JVM OpenJDK 64-Bit
gradle version gradle-4.4-all
gradle plugin version com.android.tools.build:gradle:3.0.1

Demo下载

打开SDK下载,在客户端SDK的表格里,请选择对应的包下载到本地。

目录结构说明
长视频的源码工程
模块名 作用
AlivcLongVideo 长视频业务相关代码。
Aliyunplayer 和播放器相关的代码。
AliyunVideoCommon 公共模块,主要是一些工具类。
thirdparty-lib 主要包含Demo中所需要的第三方依赖。
播放器SDK的aar包
名称 作用
AliyunPlayer-xxx-full.aar 包含播放器需要的所有类库。
AliyunPlayer-xxx-part.aar 包含播放器所需要的核心类库。

如果项目只集成了播放器的SDK,请使用full.aar包,如果项目中既集成了短视频,又集成了播放器,请使用part.aar包。

也可以通过gradle依赖方式导入SDK:
implementation 'com.aliyun.sdk.android:AliyunPlayer:4.7.0-part'implementation 'com.aliyun.sdk.android:AliyunPlayer:4.7.0-full'

详情可以参考播放器集成文档

开始编译

  1. gradle下载。
    编译环境所需gradle版本为4.4,您可以通过gradle下载找到gradle4.4版本下载到本地路径并解压缩。
  2. 导入项目。
    使用Android Studio > Open an existing Android Studio project打开下载的/demo目录下的ApsaraLongVideo工程。
  3. 配置本地gradle。
    • 选择不使用gradle wrapper。
    • 配置本地gradle路径,选择Step1解压缩的文件。
  4. 编译运行。
    编译成功后,单击运行,安装到对应符合硬件要求的手机上。
    说明 仅保证在真机上运行良好,暂不支持虚拟机。

集成长视频Demo

  1. 拷贝文件。
    将下图文件拷贝到项目的根目录中:
  2. 配置gradle。
    • 项目外层的Application的gradle配置如下:
      buildscript {
        repositories {
            google()
            jcenter()
            maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
            //投屏的maven地址
            maven { url 'http://4thline.org/m2' }
        }
        apply from: 'thirdparty-lib/config.gradle'
        dependencies {
            classpath externalAndroidBuildGradlePlugin
        }
      }
      allprojects {
        repositories {
            google()
            jcenter()
            maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
            //投屏的maven地址
            maven { url 'http://4thline.org/m2' }
            flatDir { dirs 'src/main/libs' }
        }
      }
    • gradle版本:
      distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
    • settings.gradle配置中增加如下代码:
      include ':AliyunVideoCommon'
      include ':Aliyunplayer:AlivcPlayerTools'
      include ':AlivcLongVideo'
      include ':AliyunVideoCommon'
    • app module下build.gradle的配置:
      implementation project (':AlivcLongVideo')
      implementation project (':AliyunVideoCommon')
      implementation project (':Aliyunplayer:AlivcPlayerTools')
      implementation externalAndroidAppCompatV7
      implementation externalAndroidSupportV4
      implementation externalAndroidRecyclerView
      implementation externalGSON
      implementation externalOKHTTP
      implementation externalAndroidMultiDex
    • 注意:如果报如下图所示错误,则需要在app下的build.gradle里添加packagingOptions配置。
      android {
        defaultConfig {
            ...
        }
        buildTypes {
            ...
        }
        packagingOptions {
            exclude 'META-INF/beans.xml'
        }
      }
  3. 添加权限。
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <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.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <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.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <!--自动更新URI跳转安装时需要-->
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  4. 功能使用。
    长视频的首页为AlivcHomeActivity,只需要调如下代码,就可以进入到长视频的首页。
    Intent intent = new Intent(context,AlivcHomeActivity.class);
    context.startActivity(intent);

    在长视频的Demo中,GlobalNetConstants类提供了一些请求接口信息的配置,用户可根据自己的后台请求接口来进行修改,其中包括STS信息的获取、播放资源等信息。