集成Android端美颜特效SDK

美颜特效SDK是由阿里视频云团队提供的美颜特效功能,支持画面美化、人像美颜、抠像制作、贴纸美妆、动作识别、美体、美发、AR隔空写字等各种个性化定制服务,适用于视频直播、视频会议、短视频制作等场景。本文为您介绍Android端美颜特效SDK的集成操作,用于实现美颜特效功能。

前提条件

开发前的环境要求如下表所示。

类别

说明

系统版本

支持Android 4.3及以上版本。

Java版本

支持Java 1.7及以上版本。

API LEVEL

支持Android SDK / API level 18及以上版本。

Android Studio版本

支持Android Studio 2.3以上版本,下载Android Studio

集成指引

Maven方式集成(推荐)

  1. 在项目级build.gradle项目文件中添加阿里云Maven仓库。

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url "https://maven.aliyun.com/repository/releases" }
        }
    }
  2. 在相应Android端SDK包的应用级build.gradle项目文件下,加入美颜特效SDK依赖项。

    // Queen-sdk版本
    implementation "com.aliyun.maliang.android:queen:6.8.1-official-pro"
    
    // Queen-menu组件版本(非必需)
    implementation "com.aliyun.maliang.android:queen_menu:6.8.1-official-pro-tiny"   // 菜单资源在线下载
    implementation "com.aliyun.maliang.android:queen_menu:6.8.1-official-pro"        // 菜单资源打包在本地,包体会较大
说明

因美颜特效库可能与RTC等阿里云SDK存在内部底层库重复的问题,导致打包可能出现冲突。当出现冲突时,请在您的主工程打包build.gradle文件中增加如下packagingOptions配置项,以便排除重复库。若没有冲突,则不需要增加此处理。

android {    
  ...
  compileSdkVersion ... 
  ...
  packagingOptions {
        pickFirst '**/libMNN.so'       (若存在libMNN.so冲突时,则增加该行处理,否则不需要增加)
        pickFirst '**/libMNN_CL.so'    (若存在libMNN_CL.so冲突时,则增加该行处理,否则不需要增加)
        pickFirst '**/libc++_shared.so'(若存在libc++_shared.so冲突时,则增加该行处理,否则不需要增加)
    }
  ...
}

手动方式集成

  1. 下载并解压美颜特效SDK

  2. 将解压SDK获得的.aar文件复制到工程的libs目录中。

  3. 通过gradle添加AAR包依赖。

    dependencies {
     implementation fileTree(include: ['*.aar'], dir: 'libs')
    }
  4. 在dependencies代码块中,添加如下依赖

     dependencies {
      implementation files('libs/alivc-livepusher-lib-release.aar')
    }
  5. 最后单击Sync Now按钮,编译工程。

配置应用权限

请提前在 AndroidManifest.xml 中配置App的权限,美颜特效SDK一般需要以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />

Android 6.0以上系统需要做动态权限请求。代码示例如下:

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
                == PackageManager.PERMISSION_GRANTED) {
    //已经拥有该权限
    //...
} else {
    //尚未拥有该权限,去进行申请
    //PERMISSION_REQUEST_CODE 是代表申请该权限的申请码,填写任意数字就可以了
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST_CODE);
}

配置License

请提前获取License,获取方式请参见获取美颜特效SDK License。获取后参考以下步骤将LicenseKey和LicenseFile(证书文件)配置到工程中。

说明
  • 当您同时集成视频直播美颜特效SDK和视频点播短视频SDK时,两者的LicenseKey和LicenseFile(证书文件)是相同的,只需配置一次即可(注意证书文件需使用最新的一份)。

  • 如果您购买的SDK版本发生变更或需要续期(SDK到期),需要更新证书文件。更新步骤如下:

    1. 重新获取License,操作请参见获取美颜特效SDK License发送邮件获取最新证书文件。

    2. 获取最新证书文件后,执行本文中配置License步骤更新证书文件。

将证书文件导入到工程的assets中,然后在AndroidManifest.xmlapplication节点下添加两个meta-data。示例如下:

com.aliyun.alivc_license.licensekey为元数据项名字,固定取值。

<application
 android:icon="@drawable/icon"
 android:label="@string/app_name" >
 <meta-data
 android:name="com.aliyun.alivc_license.licensekey" 
 android:value="Your LicenseKey"/> //元数据项指定值,请填入您邮件获取到的LicenseKey
 <meta-data
 android:name="com.aliyun.alivc_license.licensefile"
 android:value="Your LicenseFile Path"/> //元数据项指定值,请填入证书文件在工程中相对assets的路径,例如alivc_license/AliVideoCert.crt
 ……
</application>

参考资料

项目

链接

Sample示例工程

Sample示例工程

示例工程文件中,包含完整接入流程代码,assets目录下包含Demo所有图片资源。

快速接入指引

快速接入包

快速接入包用于提升美颜特效SDK的接入效率。示例工程内包含详细步骤文字说明,同时提供常见接入问题的调试能力和方法。

常见SDK厂家接入示范,供开发者参考。