摘要: 近期的一些创意短视频 App 风靡年轻群体,比较典型的例如抖音、MUSE 等,阿里云也适时地推出了简单易用的短视频 SDK,帮助开发者们以较低的成本快速引入功能完备的创意短视频功能。本文主要介绍如何快速接入阿里云短视频 SDK 的三个版本(基础版、标准版和专业版)。
点此查看原文:https://yq.aliyun.com/articles/384547?spm=a2c41.11181499.0.0
前言
近期的一些创意短视频 App 风靡年轻群体,比较典型的例如抖音、MUSE 等,阿里云也适时地推出了简单易用的短视频 SDK,帮助开发者们以较低的成本快速引入功能完备的创意短视频功能。
本文主要介绍如何快速接入阿里云短视频 SDK 的三个版本(基础版、标准版和专业版)。帮助开发者以最快的速度了解接入的基本方式。
本文描述的阿里云短视频 SDK 版本基于 3.4.0,后续升级接口变动请参考 阿里云短视频 SDK 文档。
示例工程代码为 Kotlin,Java 接入类似。
正文
由于三个版本接入方式大同小异,本文将着重介绍基础版接入过程,标准版和专业版可以基于基础版方式接入,后续仅说明接入差异的地方。
基础版接入
- 引入 aar 以及 so
目前 aar 平台版本最低要求 >= 4.3,先从SDK 下载页面下载相应版本的 SDK,解压之后,将 libs 文件夹下的 QuSdk-RC.aar 拷到 Android 工程模块中的 libs 文件夹下,将 jniLibs 文件夹下的 armeabi-v7a 文件夹也整体拷贝到 libs 文件夹下。
拷贝完成之后目录的文件如下:
之后按照如下方式修改 Android 项目工程主模块下的 build.gradle 文件:
Step1. 修改 jniLibs 的源文件夹;
android {
sourceSets.main {
jniLibs.srcDir "libs"
}
}
Step2. 将 libs 文件夹加入仓库中;
repositories {
flatDir {
dirs 'libs'
}
}
Step3. 增加 aar 所需依赖。
dependencies {
implementation(name: 'QuSdk-RC', ext: 'aar')
implementation 'com.android.support:appcompat-v7:24.2.1'
implementation 'com.android.support:design:24.2.1'
implementation 'com.google.code.findbugs:jsr305:3.0.0'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'pub.devrel:easypermissions:0.2.1'
implementation 'com.squareup.okhttp3:okhttp:3.2.0'
implementation 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
implementation 'com.squareup.okio:okio:1.12.0'
implementation 'com.google.code.gson:gson:2.8.0'
}
如果此处遭遇 java.lang.NoSuchFieldError 错误,可以参考短视频安卓常见问题解决。
- 初始化 SDK
请根据具体的项目情况选择合适的 SDK 初始化时机,Demo 工程在 Applicatioin 的 onCreate() 方法中初始化。
package me.bogerchan.alishortvideodemo
import android.app.Application
import com.aliyun.common.httpfinal.QupaiHttpFinal
/**
* Created by hb.chen on 2018/1/6.
*/
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
System.loadLibrary("QuCore-ThirdParty")
System.loadLibrary("QuCore")
QupaiHttpFinal.getInstance().initOkHttpFinal()
}
}
3. 开始书写你的业务逻辑
经过上述过程,实际上已经接入完成,这时候你可以参考文档直接开始使用各种 API 了,附下示例代码。
package me.bogerchan.alishortvideodemo
import android.Manifest
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.support.v4.app.ActivityCompat
import android.support.v7.app.AppCompatActivity
import android.widget.Toast
import com.aliyun.demo.recorder.AliyunVideoRecorder
import com.aliyun.struct.common.VideoQu