tnrn-linkface
v2.0.1
Published
人脸识别/活体检测-linkface for ReactNative, 使用商汤SDK3.6.1版本
Downloads
15
Readme
人脸识别/活体检测-linkface for React Native.
LinkFace Doc: http://devdoc.cloud.linkface.cn/
Getting Started
First, cd
to your RN project directory, and install RNMK through rnpm . If you don't have rnpm, you can install RNMK from npm with the command npm i -S tn-linkface
and link it manually (see below).
iOS
React Native < 0.29 (Using rnpm)
rnpm install tnrn-linkface
React Native >= 0.29
$npm install -S tnrn-linkface
$react-native link tnrn-linkface
Manually
- Add
node_modules/tn-linkface/ios/RNKitLinkFace.xcodeproj
to your xcode project, usually under theLibraries
group - Add
libRNKitLinkFace.a
(fromProducts
underRNKitLinkFace.xcodeproj
) to build target'sLinked Frameworks and Libraries
list - Add linkface framework to
$(PROJECT_DIR)/Frameworks.
Android
React Native < 0.29 (Using rnpm)
rnpm install tnrn-linkface
React Native >= 0.29
$npm install -S tnrn-linkface
$react-native link tnrn-linkface
Manually
- JDK 7+ is required
- Add the following snippet to your
android/settings.gradle
:
include ':tnrn-linkface'
project(':tnrn-linkface').projectDir = new File(rootProject.projectDir, '../node_modules/tnrn-linkface/android/app')
- Declare the dependency in your
android/app/build.gradle
dependencies {
...
compile project(':tnrn-linkface')
}
- Import
import io.rnkit.linkface.LinkFacePackage;
and register it in yourMainActivity
(or equivalent, RN >= 0.32 MainApplication.java):
@Override
protected List<ReactPackage> getPackages() {
return Arrays.asList(
new MainReactPackage(),
new LinkFacePackage()
);
}
Finally, you're good to go, feel free to require tnrn-linkface
in your JS files.
Have fun! :metal:
Basic Usage
Import library
import RNKitLinkFace from 'tnrn-linkface';
Start
try {
const result = await RNKitLinkFace.start({
"outType" : "video",
"Complexity" : 1,
"sequence" : [
"BLINK",
"MOUTH",
"NOD",
"YAW"
],
"apiKey": "****",
"apiSecret": "****",
});
console.log(result);
} catch (error) {
console.log(`code: ${error.code}, message: ${error.message}`);
}
Start Input Params
| Key | Type | Default | Description | | --- | --- | --- | --- | | Complexity | int | | 活体检测复杂度 | sequence | array | | 设置识别序列, 活体检测复杂度 | | outType | string | | 输出方案, 单图方案:singleImg, 多图方案:multiImg, 低质量视频方案:video, 高质量视频 方案:fullVideo | | apiKey | string | | 厂商提供的 apiKey | apiSecret | string | | 厂商提供的 apiSecret
Start Output Params
| Key | Type | Default | Description | | --- | --- | --- | --- | | encryTarData | string | | 活体识别二进制文件路径 | | arrSTImage | array[string] | | 返回的图片路径数组 | | lfVideoData | string | | 视频地址 |
Error
- ArgsNull: 参数不能为空
- BadJson: 解析Json指令失败!
- InitFaild: 初始化失败
- CameraError: 相机权限获取失败
- FaceChanged: 采集失败,人脸变更
- TimeOut: 超时
- WillResignActive: 活体验证失败, 请保持前台运行
- InternalError: 内部错误
- Unknown: 未知错误
- Cancel: 用户取消识别
clean 清理图片临时目录, 上传反馈完, 必须调用此方法
RNKitLinkFace.clean();
event MultiLivenessDidStart ( iOS only )
import { NativeEventEmitter } from 'react-native';
const nativeEventEmitter = new NativeEventEmitter(RNKitLinkFace);
const listener = nativeEventEmitter.addListener('MultiLivenessDidStart', () => {
// 此方法可能会回调多次
});
// 使用完后记得移除
listener.remove();
event MultiLivenessDidFail ( iOS only )
import { NativeEventEmitter } from 'react-native';
const nativeEventEmitter = new NativeEventEmitter(RNKitLinkFace);
const listener = nativeEventEmitter.addListener('MultiLivenessDidFail', () => {
// 此方法可能会回调多次
});
// 使用完后记得移除
listener.remove();
Contribution
- @simamn The main author.
Questions
Feel free to contact me or create an issue
made with ♥