短视频直播平台第三方特效SDK完整接入教程

近些年,随着网络视频直播行业的兴起,Faceu激萌、抖音短视频受到了用户极度的追捧,整个行业的用户市场与发展前景都非常不错,已成为时下最热门的话题,大部分企业希望在自己的移动应用上添加类似Faceu、抖音等功能需求,实现以上需求现在大部分企业是通过第三方视频SDK来完成的,那如何快速接入类似Faceu功能,本篇以第三方sdk宝宝特效为例:
效果图如下:
视频直播特效SDK效果
SDK接入流程:
1.获取APPKEY:进入哎吖科技官网:http://www.aiyaapp.com/提交接入申请,填入applicationId获取appKey;(可免费接入试用)
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.AiyaSDK认证:
对于所有模块的认证,流程都是一致的。每个模块都有一个入口类,应用中要使用某个模块的功能时,需要调用AiyaEffects.registerComponent方法,注册这个模块。先设置监听器,在接收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是一个相机预览及录制工具类,其具体代码可以参考
https://github.com/aiyaapp/AAVT
*AAVT是一个对视频的渲染库文件,其中包对mp4文件的处理,相机预览和视频录制的工具,还有YUV视频格式的导出等功能。
礼物贴图:其引用的so库如下:
礼物贴图:引用的so库
初始化AiyaGiftFilter类,如下
初始化AiyaGiftFilter类
*其中AiyaTracker表示的是加入人脸识别功能。另一种方式是
加入人脸识别功能
添加礼物贴图动画监听:
添加礼物贴图动画监听
*其中贴图资源可以放在项目的Assets目录中,若想减少apk的体积可以吧资源放入网络中获取。(资源可以从Demo中的Assets目录中获取)
*添加贴图资源和释放
添加贴图资源和释放
添加贴图资源和释放
*具体使用可以参考Demo中DefaultEffectFlinger类
人脸识别模块:可以与贴图配合使用,如上。同时也可以与美颜模块中的美型(大眼,瘦脸)配合使用。
人脸识别模块,可与贴纸、美颜、大眼、瘦脸配合使用
*具体使用可以参考Demo中DefaultEffectFlinger类中的使用。
美颜模块:美颜共有AiyaBeauty.TYPE1,AiyaBeauty.TYPE2,AiyaBeauty.TYPE3,AiyaBeauty.TYPE4,
AiyaBeauty.TYPE5,AiyaBeauty.TYPE6,六种美颜形式。其引用的so文件如下
美颜模块
初始化AyBeautyFilter
初始化AyBeautyFilter
*其中key表示的是美颜的六种类型
*mBeautyDegree:表示的是美颜的值,其取值范围在[0.0f, 1.0f]。
*其中每一种美颜模式都可以设置磨皮系数,红润度参数和美白参数,取值范围[0.0f, 1.0f]
设置美颜强度
设置美颜强度
设置磨皮强度
设置磨皮强度
设置红润强度
设置红润强度
设置美白强度
设置美白强度
*具体使用可以参考Demo中DefaultEffectFlinger类中的使用
短视频模块:引用的so库如下
短视频模块
其现总共有13中效果分别是:
无特效 —— LazyFilter.class
灵魂出窍 —— SvSpiritFreedFilter.class
抖动 —— SvShakeFilter.class
黑魔法 —— SvBlackMagicFilter.class
虚拟镜像 —— SvVirtualMirrorFilter.class
荧光 —— SvFluorescenceFilter.class
时光隧道 —— SvTimeTunnelFilter.class
躁动 —— SvDysphoriaFilter.class
终极变色 —— SvFinalZeligFilter.class
动感分屏 —— SvSplitScreenFilter.class
幻觉 —— SvHallucinationFilter.class
70S —— SvSeventysFilter.class
炫酷转动 —— SvRollUpFilter.class
四分屏 —— SvFourScreenFilter.class
三分屏 —— SvThreeScreenFilter.class
黑白闪烁 —— SvBlackWhiteTwinkleFilter.class
转场动画 —— SvCutSceneFilter.class
使用方式:
短视频
*其中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{*;}

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭