fix(face): 修复短时间内再次识别无法触发的问题
新增 RecognizeViewModel.resetFaceState(),在 resetRecognizeState() 时 同时清空粘性 LiveData 和 FaceHelper 内部 recognizeInfoMap, 防止旧 trackId 状态残留导致识别流程无法重新触发。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
ae708eeeed
commit
385ada4a0d
@@ -397,6 +397,20 @@ public class RecognizeViewModel extends ViewModel implements RecognizeCallback {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置人脸识别状态:清空上次识别结果及 FaceHelper 内部的 recognizeInfoMap,
|
||||
* 使下一帧进入时能重新触发识别流程。
|
||||
* 适用场景:短时间内再次识别、点击重试按钮等需要重新开始识别的时机。
|
||||
*/
|
||||
public void resetFaceState() {
|
||||
// 清空粘性 LiveData,防止旧结果被重新投递给 observer
|
||||
recognizeUserId.postValue(null);
|
||||
// 清空 FaceHelper 内部所有人脸状态,让 trackId 对应的状态回到 TO_RETRY
|
||||
if (faceHelper != null) {
|
||||
faceHelper.clearFacePreviewInfoList();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 释放操作
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user