更新记录
1.0.0(2026-04-23)
- 支持 Android / iOS 原生相机预览和自动采集
- 支持录制过程中按间隔抓取原生预览帧
- 提供统一 nvue 模板页,预留业务验证接口接入点
- 默认不依赖额外抽帧插件,业务层可自行处理 base64、比对接口和打卡结果
平台兼容性
uni-app(4.75)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | √ | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.75)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | √ | √ | × | × |
austin-face-checkin
austin-face-checkin 是一个贴近打卡业务场景的 uni-app 原生插件,支持 Android / iOS。
当前目录下的 index.nvue 是统一模板页,主要演示:
- 前置相机原生预览
- 页面就绪后自动开始采集
- 录制过程中按间隔抓取预览帧
- 拿到帧图路径后继续做 base64 / 业务验证
- 业务接口默认关闭,不影响插件独立测试
场景说明
这个插件更适合以下场景:
- 人脸打卡
- 人脸签到
- 考勤核验
- 门禁验证前的活体采集
模板页默认行为就是“打卡采集页”:
- 相机就绪后自动开始录制
- 默认每
1000ms抓取一次过程帧 - 默认不直接调用你的后端接口
- 你可以在业务层继续做 base64 转换、相似度校验和成功/失败策略
抽帧说明
录制过程中的原生预览抓帧已经内置在本插件里,当前版本默认只走原生抓帧,不依赖额外插件。
如果你后续还需要“按视频文件时间点抽帧”这类独立能力,可以再单独接入 austin-video-frame 视频抽帧插件。
安装
将 uni_modules/austin-face-checkin 目录复制到项目的 uni_modules 目录下。
模板页示例:
说明:
- 当前插件只面向
nvue / uvue页面接入 app-vue不作为该原生组件的主接入形态
权限要求
iOS
NSCameraUsageDescriptionNSMicrophoneUsageDescription
Android
android.permission.CAMERAandroid.permission.RECORD_AUDIO
说明:
- 模板页默认传入的是
:mute="true" - 如果你只做静音采集,业务上可以不使用录音内容
组件用法
<austin-face-checkin
ref="recorderRef"
cameraPosition="front"
resolution="720p"
:mute="true"
:maxDurationMs="0"
:frameCaptureEnabled="true"
:frameCaptureIntervalMs="1000"
:frameCaptureQuality="85"
@ready="onRecorderReady"
@recordstart="onRecordStart"
@recordprogress="onRecordProgress"
@recordfile="onRecordFile"
@recordstop="onRecordStop"
@framecapture="onFrameCapture"
@error="onRecordError"
/>
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
cameraPosition |
string |
front |
摄像头位置,可选 front / back |
resolution |
string |
720p |
分辨率,可选 720p / 1080p |
mute |
boolean |
false |
是否静音采集 |
maxDurationMs |
number |
8000 |
最大录制时长,单位毫秒;传 0 或小于 0 表示不自动停止 |
frameCaptureEnabled |
boolean |
false |
是否开启录制过程抓帧 |
frameCaptureIntervalMs |
number |
1000 |
过程抓帧间隔,单位毫秒 |
frameCaptureQuality |
number |
85 |
JPEG 抓帧质量,范围建议 1-100 |
事件
| 事件名 | 说明 | 常用字段 |
|---|---|---|
ready |
相机预览就绪 | 无 |
recordstart |
开始采集 | filePath |
recordprogress |
录制进度更新 | durationMs |
recordfile |
当前录制文件可用 | filePath、durationMs |
recordstop |
录制停止 | filePath、durationMs |
framecapture |
过程抓帧结果 | ok、imagePath、timeMs、width、height、errCode、errMsg |
error |
异常回调 | errCode、errMsg |
framecapture 成功示例:
{
"ok": true,
"imagePath": "/path/to/face_record_frame.jpg",
"timeMs": 3001,
"width": 720,
"height": 720
}
方法
| 方法名 | 参数 | 说明 |
|---|---|---|
startPreview() |
无 | 开始预览 |
stopPreview() |
无 | 停止预览 |
startRecord() |
无 | 开始采集 |
stopRecord() |
无 | 停止采集 |
switchCamera(position) |
front / back |
切换前后摄像头 |
getCurrentFilePath() |
无 | 获取当前或最近一次录制文件路径 |
capturePreviewFrame() |
无 | 立即抓取当前预览帧 |
模板页说明
模板页保留了这些更贴近业务的演示逻辑:
- 自动开始采集
- 过程帧路径打印
- 过程帧转 base64 示例
- 业务接口预留开关
- 成功 / 处理中提示框
模板页里的接口开关字段:
| 字段名 | 说明 |
|---|---|
enableServerVerification |
是否真的调用业务接口,默认 false |
verifyApiUrl |
业务验证接口地址,默认空字符串 |
默认情况下:
- 模板页会继续走抓帧
- 不会主动请求你的业务接口
- 适合先验证原生组件、路径、抓帧和事件链路
业务接入建议
建议把下面这些放在业务层处理,而不是继续写死在插件里:
- base64 转换
- 人脸比对接口调用
- 相似度阈值
- 失败重试次数
- 打卡成功后的页面跳转
插件层建议只负责:
- 相机预览
- 自动采集
- 过程抓帧
- 返回稳定的本地视频路径和帧图路径

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 607
赞赏 4
下载 11657938
赞赏 1907
赞赏
京公网安备:11010802035340号