1. 程式人生 > >短視訊直播平臺第三方特效SDK接入教程(完整版)

短視訊直播平臺第三方特效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{*;}