iOS

最近更新时间:2019-05-21 14:30:25

功能说明

腾讯云直播团队与优图实验室、天天 P 图团队进行深度合作,结合人脸识别技术与美妆技术,开发了大眼、瘦脸、瘦鼻、动效贴纸、AI 抠背以及绿幕等特效功能,并整合到 LiteAVSDK 的图像处理流程中,以实现更好的视频效果。

接入准备

1. 申请商业版 License

登录 美颜特效 SDK(优图美视)控制台 ,单击【立即申请】,如实填写相关信息并完成申请。
请着重检查 iOS bundle IDAndroid 应用包名称(package name)信息是否填写正确,License 需要校验您的 App 安装包名称是否跟申请时一致。

2. 下载商业版 SDK

下载并解压 商业版 SDK ,解压时需要解压密码,解压密码在申请 License 成功后即可获取,解压后的目录结构如下:

目录名称 目录内容
TXLiteAVSDK_Enterprise.framework 商业版 SDK
GPUImage.framework 开源库
Resource 商业版本 SDK 所需要的特效资源

3. 将 SDK 导入您的工程

  1. 打开您的 Xcode 工程项目,选择要运行的 target,选中【Build Phases】。

  2. 单击【Link Binary with Libraries】展开,单击【+】添加依赖库。

  3. 依次添加所下载的TXLiteAVSDK_Enterprise.framework及其所需依赖库:

    libz.tbd 
    libc++.tbd
    libresolv.tbd
    libsqlite3.tbd
    Accelerate.framework
    GPUImage.framework
    AssetsLibrary.framwork
    CoreMedia.framework
    Metal.framework

  4. 添加链接参数:
    在工程【Build Setting】>【Other Link Flags】中,增加【-ObjC】选项。

  5. 添加动效资源:

    注意:

    请正确添加下述资源,否则切换到换脸类素材时会发生 Crash 等问题。

    将 SDK/Resource 下的文件以groups的形式添加到工程中。

    其中,handdetecthandtrackres18_3M三个文件要以folder refrence形式添加:

    添加完成后,效果如图所示:

  6. 授权摄像头和麦克风使用权限:
    在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。

    • Privacy - Microphone Usage Description,并填入麦克风使用目的提示语。
    • Privacy - Camera Usage Description,并填入摄像头使用目的提示语。

4. 给 SDK 配置 License 授权

申请商业版 License 成功后,您会获得两个字符串:licenseURL 和解密 key。在您的 App 调用商业版 SDK 相关功能前需进行如下设置:

说明:

建议配置在 - [AppDelegate application:didFinishLaunchingWithOptions:] 中。

@import TXLiteAVSDK_Enterprise;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSString * const licenceURL = @"<获取到的 licenseURL>";
    NSString * const licenceKey = @"<获取到的 licenceKey>";
    [TXLiveBase setLicenceURL:licenceURL key:licenceKey];
    NSLog(@"SDK Version = %@", [TXLiveBase getSDKVersionStr]);
}
@end

功能接口

美妆接口(大眼、瘦脸)

美妆接口的调用比较简单,只需要对指定的接口调用0 - 9之间的一个数值即可,0表示关闭,数值越大,效果越明显。

/**
 * 设置大眼级别
 * @param eyeScaleLevel 大眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。
 */
- (void)setEyeScaleLevel:(float)eyeScaleLevel;

// 瘦脸
- (void)setFaceScaleLevel:(float)faceScaleLevel;

// V 脸
- (void)setFaceVLevel:(float)faceVLevel;

// 调整下巴拉伸或收缩
- (void)setChinLevel:(float)chinLevel;

// 短脸
- (void)setFaceShortLevel:(float)faceShortlevel;

// 瘦鼻
- (void)setNoseSlimLevel:(float)noseSlimLevel;

AI 贴纸

购买商业版 License 后,您可以获得20个 AI 贴纸素材包。每一个素材包就是一个独立的目录,目录里包含了很多资源文件。每个素材包因其复杂度不同,文件数量和大小尺寸也各不相同。
为了节省安装包体积,我们建议您将素材包上传到您的服务器上,并将下载地址配置在您的 App 中,例如:http://yourcompany.com/hudongzhibo/AISpecial/**/{动效名}.zip
在 App 启动后,下载并解压素材包到 Resource 目录下。完成解压后,即可通过以下接口开启动效效果:

/**
 * 选择使用哪一款 AI 动效挂件(商业版有效,其它版本设置此参数无效)
 *
 * @param tmplName 动效名称
 * @param tmplDir 动效所在目录
 */
- (void)selectMotionTmpl:(NSString *)tmplName inDir:(NSString *)tmplDir;

绿幕功能

如果要使用绿幕功能,需要先让主播站在一个绿色背景前。开启绿幕功能以后,SDK 会识别出图像中的绿色区域,并将其替换成视频内容。

您需要先准备一个用于播放的 mp4 文件,然后通过调用如下接口即可开启绿幕效果:

/**
 * 设置绿幕背景视频(商业版有效,其它版本设置此参数无效)
 *
 * 此处的绿幕功能并非智能抠背,它需要被拍摄者的背后有一块绿色的幕布来辅助产生特效
 * @param file 视频文件路径,支持 MP4。nil 表示关闭特效。
 */
- (void)setGreenScreenFile:(NSURL *)file;

问题排查

工程编译不过?

检查AssetsLibrary.framworkCoreMedia.frameworkAccelerate.frameworkMetal.framework 依赖库是否已添加成功。

工程运行过程中 Crash?

  • 检查工程是否已配置 -ObjC。
  • 检查 Metal API Validation 是否被设置为 Disabled。

工程特效不生效?

  • 检查是否已调用+[TXLiveBase setLicenceURL:key:]方法,以及参数是否正确。
  • 调用 TXLiveBase 的 getLicenseInfo() 方法,带有动效的 Licence 会包含 pituLicense 字段。
  • 检查 pitu 资源是否添加正确,尤其要注意 handdetecthandtrackres18_3M三个文件夹要以 folder refrence 形式添加,最简单的方法就是比对您工程中添加的动效文件是否和 demo 添加的完全一致 。
  • SDK 会把 Licence 下载到沙盒的 Documents 目录当中, 可以在开发过程中使用 Xcode 菜单中 “Window > Devices and Simulators” 工具导出并使用 License 校验工具 查看有效期。

注意:

License 校验工具 是一个 xcode 工程,目前仅支持在 Mac 上使用, 后续会开放其他查询方式。