Files
featherVoice/TencentCloudHuiyanSDKFace_framework/Libs/YTFaceLiveReflect.framework/Headers/YTFaceHandle.h
2025-08-08 10:49:36 +08:00

191 lines
6.2 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// YTFaceHandle.h
// FaceVideoTest
//
// Created by CosperYu on 2019/02/28.
// Copyright © 2019 Tencent. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "DataDef.h"
#import <AVFoundation/AVFoundation.h>
#import <sys/utsname.h>
#import "YTAGReflectDeviceDelegate.h"
#import <CommonCrypto/CommonCrypto.h>
#ifndef YTFaceHandle_h
#define YTFaceHandle_h
//#define YT_ENCODE_REFLECT_DATA
using namespace std;
// Comment this version define avoid redefined and use interfaces instead.
#define YT_FACE_REFLECT_VERSION @"3.7.4"
//活体类型
enum YTLIVETYPE {
LIVETYPE_REFLECT = 1, //反光
LIVETYPE_POSE = 2, //动作
};
//服务器回调验证
enum YTSERVERCHECK_TYPE {
YTSERVERCHECK_INPUTPARAM_NULL = -1, //入参为空
YTSERVERCHECK_CHECKPASS = 0, //检测通过
//反光验证使用
YTSERVERCHECK_REFLECT_FAILED = 1, //反光验证失败
YTSERVERCHECK_PICTURE_FAILED = 2, //防翻拍验证失败
YTSERVERCHECK_COMPARE_FAILED = 3, //对比失败
};
enum YTREFLECT_SAFETY_LEVEL {
YTREFLECT_SAFETY_RECOMMAND = 0, //推荐大小反光上传数据大概500K
YTREFLECT_SAFETY_LOW = 1, //低安全性上传包体大概300K。若网络环境或者破解要求没那么高的场景使用
YTREFLECT_SAFETY_HIGH = 2, //高安全性上传包体可能会到2M。微信在用
YTREFLECT_SAFETY_COUNT = 3
};
/*
@brief 反光结束时的回调
@param ret: 反光序列字符串
0 成功
-1 调用了clearAG终止反光
-1491 反光图片序列检验的时候检查不到人脸
-1493 时间戳数量跟图片数量对不上通常是sdk内部错误
-1494 iso变光点时序不正确通常是sdk内部错误造成
@param fullPack: 反光结果图
*/
typedef void (^onFinish)(int ret, YTFullPack fullPack);
typedef void (^onDalayCalc)();
typedef void (^onReflectLiveImgData)(YTRawImgData frame);
/*
@brief 解析rgb请求
@param rgbconfig: 解析后的rgb序列
@param error: 解析产生错误或者服务器回调错误。如果无错误则为nil
*/
typedef void (^YTRgbconfigParseResult)(NSString* _Nullable rgbconfig, NSError *_Nullable error);
/**
@brief 反光事件回调接口
@param rgb 屏幕颜色
@param light 屏幕亮度
*/
typedef void (^YTReflectEventCallback)(uint argb ,CGFloat light);
/**
@brief 反光SDK日志注册回调
@param level 日志等级 0 - error 1 - warn 2 - info 3 - error)
@param message 日志信息
*/
typedef void (^OnYTFaceReflectSDKLoggerEventBlock)(int level, NSString * _Nonnull message);
@interface YTFaceHandle : NSObject
#pragma mark - Global Interface
/**
* 0 RGB
* 1 BGR
*/
@property (assign, nonatomic) int innerImgType;
@property (assign, nonatomic) float compressReflectionImageScore;
/**
@brief 日志注册接口
@param level 日志等级 0 - error 1 - warn 2 - info 3 - error)
@param listener 日志回调
*/
+ (void)registerSDKLogger:(int) level withListener:(OnYTFaceReflectSDKLoggerEventBlock _Nullable)listener;
+ (NSString * _Nonnull)checksum:(NSString * _Nonnull)act_str withData:(id _Nonnull)data;
#pragma mark - Life Circle
/**
* 更新配置
* @param key is_alone_raw_push是否流式传输(边压帧边吐帧) 1打开 is_shorten_strategy 当流式传输时生效(解决性能问题) 1开启抽帧
* @param value
*/
- (void)updateParam:(NSString * _Nonnull)key withValue:(NSString * _Nonnull)value;
/**
@brief 初始化反光实例
@param appId: 应用的appid需要在优图后台申请
@param extraData: ppl version
*/
- (id _Nullable )initWithAppId:(NSString*_Nonnull)appId withExtraData:(NSString *_Nullable)extraData;
/**
@brief 反光事件回调注册函数
@param callback 反光事件回调
*/
- (void)setReflectEvent:(YTReflectEventCallback _Nonnull)callback;
/**
@brief 获取sdk版本
@return 返回版本信息
*/
- (const NSString * _Nonnull)getVersion;
/**
@brief 初始化并且开始反光过程
@param rgbConfig: 反光序列字符串
@param device:遵循YTAGReflectDeviceDelegate协议的对象
@param shapeView: 用于控制屏幕颜色变化的view
@param onDalayCalc: 开始延迟计算过程
@param onFinish: 前段反光过程完成具体返回内容含义参照onFinish定义。回调发生在主线程
@return error code:
0 成功
-1 CP_string格式组成不正确
-2 device为空
-3 shapeView为空
-4 onDalayCalc为空
-5 onFinish为空
-1024 授权验证失败
@warning 1、请在主线程调用
2、反光活体暂不支持多线程同时使用
*/
- (NSInteger)initAG:(NSString *_Nonnull)rgbConfig
device:(id<YTAGReflectDeviceDelegate> _Nonnull)device
shapeView:(UIView* _Nullable)shapeView
onDalayCalc:(onDalayCalc _Nonnull)onDalayCalc
onFinish:(onFinish _Nonnull)onFinish
onReflectLiveImgData:(onReflectLiveImgData _Nonnull)onReflectLiveImgData
outputDurationMS:(long &)durationMS;
/**
@brief 自动生成反光序列
@return 返回反光序列
*/
- (NSString * _Nonnull)AutoGenRgb:(int)rgbNum mode:(NSString * _Nonnull)mode;
/**
@brief 反光过程压帧接口
@param faceImageCrop: 反光开始后的每帧数据
@param faceAlign: 当前帧的配准结果
@param timeStamp: 当前帧时间戳
*/
- (void)PushImgSequence:(void*_Nonnull)faceRgbMat faceAlign:(NSMutableArray* _Nonnull)faceAlign timeStamp:(uint64_t)timeStamp;
//终止反光并清理反光数据调用后如需再次反光需要重新调用initAG
//可以在反光过程的任意阶段调用,如用户反光过程来电或者其他原因希望结束反光验证时
//正常流程下依然建议使用demo的方式反光过程进行界面锁定避免用户不必要的操作
- (void)clearAG;
#pragma mark - Settings
//安全性设置,参照 YTSAFETYLEVEL
- (void)setSafety:(YTREFLECT_SAFETY_LEVEL) value;
- (int)getSafety;
#pragma mark - Utility
//检测是否睁眼
//反光开始前需要用户睁眼,以避免沉睡状态下通过了反光验证
- (float) precheckCloseEye:(const NSMutableArray* _Nonnull) att;
////临时存储图的路径(测试用)
//-(void)setSavePath:(NSString* _Nonnull)savePath;
@end
#endif /* YTFaceHandle_h */