美颜是在线直播源码很重要的一部分功能,为了保证美颜质量并降低开发时间,在线直播源码会接入第三方美颜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() {@Overridepublic int onEvent(int i, int i1, String s) {}});//初始化认证
AiyaEffects.init(getApplicationContext(),"appkey");

5.使用流程:

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

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

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

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

初始化AiyaGiftFilter类,如下:

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

添加礼物贴图动画监听

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

*添加贴图资源和释放

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

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

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

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

初始化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_博客,如有侵权请联系作者删除

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

  1. 在线直播源码直播全流程探索

    在线直播源码直播全流程探索 在线直播源码直播全流程探索 生成阶段 生成阶段包括对音视频的采集和处理: 音视频的采集,采集阶段主要是对原始视频内容进行采集即直播内容的来源,根据应用场景的差别,我们可以分 ...

  2. 如何评判在线直播源码优劣?视频直播软件开发经验之谈

    直播经过这些年的不断发展,使用者逐渐增加,在视频直播软件开发行业从业者的不断努力下,在线直播源码变得越来越完善,甚至已有了一些开发窍门的积累和判断视频直播软件优劣性的指标,本篇文章就来讲讲,该如何评判 ...

  3. 在线直播源码评论弹幕是如何“练”成的?

    在线直播源码评论弹幕是如何"练"成的? 提起弹幕(dànmù),大家都会想到「视频弹幕」.视频弹幕是指网友们在观看视频的同时参与评论,即所谓"即时反馈", 评论 ...

  4. 在线直播源码,VUE 获奖名单滚动显示的两种方式

    在线直播源码,VUE 获奖名单滚动显示的两种方式 第一种: 使用vue-seamless-scroll组件: 1.安装vue-seamless-scroll npm install vue-seaml ...

  5. 在线直播源码是如何实现短信验证码登录的

    在线直播源码都有登录页面,登录时输入正确的验证码才可以登录,废话不多说,今天就用javascript和异步,来实现在线直播源码自动生成图片验证码的功能. 首先我们要插入一个一般处理程序(也就是ashx ...

  6. 在线直播源码中直播间内大转盘功能的实现

    年前,云豹在线直播源码更新时,我们为其添加了"大转盘功能",该功能在直播间中,可实现"付费转动转盘获得礼物"的功能,那么该功能是如何实现的呢? 用户在使用该功能 ...

  7. 在线直播源码搭建直播平台的后端

    在线直播源码搭建直播平台的后端 后端项目初始化 1.全局安装express脚手架 额,这个应该是属于准备工作的.给忘记了,那就凑合放在这里吧,别打我,我知道错了,但我就是不改[狗头保命] cnpm i ...

  8. 专业的直播系统开发,在线直播源码讲解

    现在和大家分享一个关于直播App开发,在线直播源码主要的5步骤的内容就可以完成一款直播App的开发.这5步骤包括: 真机调试,通过模拟器和真机调试功能进行App优化,一键点击即可在iOS和Androi ...

  9. 优质在线直播源码进行直播间搭建时需要它的“帮助”才行

    在直播间搭建这方面,可能绝大多数人都存在疑惑:是不是找一开发公司购买一套优质的在线直播源码就可以了?其实源码对于开发来说,确确实实是非常重要的,而且也是最基础的一部分.但是在此基础之上,还需要更多技术 ...

最新文章

  1. Unicode、UTF-8 和 ISO8859-1到底有什么区别(转载)
  2. MySQL存储过程使用游标循环数据列表
  3. linux退出windows域,删除Windows AD域控制器的三种方法
  4. C++面向对象高级编程(上) 第三周笔记 GeekBand
  5. 国庆记事之一:小白结婚及我跟女朋友吵架
  6. 【转】el-cascade设置默认值遇到的坑!
  7. game design原理系列学习笔记(四)
  8. 511遇见易语言大漠多线程模块教程(1-12课)
  9. 软件工程学习笔记(二)~软件需求说明书
  10. gb/t19011-2013 管理体系审核指南
  11. Java开发实习(入职经历)
  12. 如何做好日程管理?实操介绍:不同角色的日程管理方法
  13. 关于计算机的小故事英语作文,简单的英语小故事精选【六篇】
  14. arcgis多面体数据转面_ArcGIS多面体(multipatch)解析——引
  15. 指数灰度变换法 matlab,matlab指数灰度变换
  16. 有房间匹配和无房间匹配
  17. 【vue-清除默认样式-完结】
  18. 2018 react 大会_2018年React.js全面指南
  19. 《 初学 》 html5 制作简单时钟
  20. 大创小组讨论会议纪要

热门文章

  1. 中亦安图oracle培训,【中亦安图】Systemstate Dump分析经典案例(8)
  2. 郑州大学本科生毕业论文latex模板
  3. 计算机睡眠伤硬盘,放开那块硬盘!聊聊Win8伤盘那些事
  4. 输入两个正整数,求其最大公约数。
  5. Linux刻录光盘win10认不到,Windows10系统读不取DVD光驱和刻录光盘
  6. Tiled结合Unity实现瓦片地图——Unity实战篇
  7. 【第2篇】基础数据类型
  8. 用python做一个简单的猜拳游戏
  9. 2023springboot计算机毕业设计选题推荐、springboot计算机毕业设计题目大全
  10. android 5.0一键刷机教程,HTC D820t (Desire 820 移动4G Android 5.0)一键刷机教程,轻松刷机...