ITPub博客

首页 > 应用开发 > IT综合 > 如何实现在线直播源码的美颜功能——接入美颜SDK

如何实现在线直播源码的美颜功能——接入美颜SDK

IT综合 作者:云豹科技晓彤 时间:2021-09-03 16:27:03 0 删除 编辑

美颜是在线直播源码很重要的一部分功能,为了保证美颜质量并降低开发时间,在线直播源码会接入第三方美颜SDK,实现系统的美颜功能,接下来就介绍一下,在线直播源码是怎么接入美颜SDK的。

SDK接入流程

1.获取APPKEY:进入在线直播源码使用的美颜SDK官网,提交接入申请,填入applicationId获取appKey;(大多数的美颜SDK都可免费接入试用)

2.添加Maven集成:在项目的build.gradle中添加引用:

allprojects {
    repositories {
        jcenter()
        maven { url "https://d1.bintray.com/aiyaapp/sdk" }
   }
}

添加依赖

compile 'com.aiyaapp.aiya:AyCore:v4.0.2'
compile 'com.aiyaapp.aiya:AyEffect:v4.0.2'
compile 'com.aiyaapp.aiya:AyBeauty:v4.0.2'
compile 'com.aiyaapp.aiya:AyFaceTrack:v4.0.2
compile 'com.aiyaapp.aiya:AyShortVideoEffect:v4.0.2'

3.添加使用权限:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4.SDK认证。

对于所有模块的认证,流程都是一致的。每个模块都有一个入口类,应用中要使用某个模块的功能时,需要调用方法,注册这个模块。先设置监听器,在接收INIT消息时,注册需要使用的模块。AUTH消息为认证结果,如果无法使用特效,很多时候是因为认证失败。特效注册后,认证成功之前默认为模块可用,所以无需等待认证结果,可放心执行其他任务。具体代码如下:

//设置认证监听
AiyaEffects.setEventListener(new IEventListener() {
          @Override
        public int onEvent(int i, int i1, String s) {
                }
       });
 
//初始化认证
AiyaEffects.init(getApplicationContext(),"appkey");

5.使用流程:

在线直播源码利用CameraRecorder2来预览相机并录制视频,其中CameraRecorder2的使用方法如下:

CameraRecorder2使用方法

 *其中mRecord.setRenderer(mFlinger);//添加渲染,其中的特效处理可以添加到mFinger中。
*CameraRecorder2是一个相机预览及录制工具类。

*AAVT是一个对视频的渲染库文件,其中包对mp4文件的处理,相机预览和视频录制的工具,还有YUV视频格式的导出等功能。

礼物贴图:其引用的so库如下:

初始化AiyaGiftFilter类,如下:

初始化AiyaGiftFilter类

*其中AiyaTracker表示的是加入人脸识别功能。另一种方式是:

加入人脸识别功能

添加礼物贴图动画监听

添加礼物贴图动画监听

*其中贴图资源可以放在在线直播源码的Assets目录中,若想减少apk的体积可以吧资源放入网络中获取。(资源可以从Demo中的Assets目录中获取)

*添加贴图资源和释放

添加贴图资源和释放

添加贴图资源和释放

*具体使用可以参考Demo中DefaultEffectFlinger类

人脸识别模块:可以与贴图配合使用,如上。同时也可以与美颜模块中的美型(大眼,瘦脸)配合使用。

人脸识别模块,可以配合贴图、美颜模块中美型、大眼、瘦脸使用

*具体使用可以参考Demo中DefaultEffectFlinger类中的使用。

美颜模块:美颜共有六种美颜形式。在线直播源码引用美颜的so文件如下:

美颜模块

初始化AyBeautyFilter

初始化AyBeautyFilter

*其中key表示的是美颜的六种类型
*mBeautyDegree:表示的是美颜的值,其取值范围在[0.0f, 1.0f]。

*其中每一种美颜模式都可以设置磨皮系数,红润度参数和美白参数,取值范围[0.0f, 1.0f]

设置美颜强度:

设置美颜强度

设置磨皮强度:

设置磨皮强度

设置红润强度:

设置红润强度

设置美白强度:

设置美白强度

*具体使用可以参考Demo中DefaultEffectFlinger类中的使用

短视频模块:引用的so库如下

短视频模块

 使用方式:

短视频模块

 *其中processTexture(widith,height,class);中第三个参数可传入上面的效果。

*具体使用,在线直播源码可以参考Demo中DefaultEffectFlinger类中的使用。

添加混淆
-keep class com.aiyaapp.aiya.IEventListener{*;}
-keep class com.aiyaapp.aiya.WeakAnimListener{*;}
-keep class com.aiyaapp.aiya.render.AnimListener{*;}
-keep class com.aiyaapp.aiya.AiyaGiftEffect{*;}
-keep class com.aiyaapp.aiya.AiyaBeauty{*;}
-keep class com.aiyaapp.aiya.AiyaTracker{*;}
-keep class com.aiyaapp.aiya.AiyaShaderEffect{*;}
-keep class com.aiyaapp.aiya.AiyaEffects{*;}

声明:本文由云豹科技转发自luo_jian_博客,如有侵权请联系作者删除


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002045/viewspace-2790331/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
音视频软件开发相关知识科普账号

注册时间:2021-06-11

  • 博文量
    163
  • 访问量
    60336