Firebase ML Kit 功能是否异步,以便我可以 运行 使用同一个检测器进行多次检测?
Are the Firebase ML Kit functions asynchronous so that I could run multiple detections using the same detector?
我想重复使用同一个 FirebaseVisionTextDetector,这样我就不必多次创建同一对象的多个实例。我担心的是,如果我在短时间内对不同的图像位图调用 detetor.detectInImage(...),FirebaseVisionTextDetector 的异步属性是否能够处理与此相关的任何错误?或者我应该为每个位图使用不同的检测器吗?
我特别指的是这段代码,它是 Google ML Kit 教程的一部分:
https://firebase.google.com/docs/ml-kit/android/recognize-text
FirebaseVisionTextDetector detector = FirebaseVision.getInstance().getVisionTextDetector();
Task<FirebaseVisionText> result =
detector.detectInImage(image)
.addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
@Override
public void onSuccess(FirebaseVisionText firebaseVisionText) {
// Task completed successfully
// ...
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
// ...
}
});
附带说明一下,有人可以为我推荐一种将 onSuccess 方法中的文本传回调用方法的方法吗?我正在考虑使用 obervables 或回调方法。
Googles 任务 API 默认是异步的,onSuccess 或 onFailure 是它们完成时的回调。
您可以通过调用
等待任务完成(在需要同步的地方)
Tasks.await(myTask)
您是否有理由要将文本传回调用方法?你能不能把它传递给一个新方法来做你需要做的事情?
我想重复使用同一个 FirebaseVisionTextDetector,这样我就不必多次创建同一对象的多个实例。我担心的是,如果我在短时间内对不同的图像位图调用 detetor.detectInImage(...),FirebaseVisionTextDetector 的异步属性是否能够处理与此相关的任何错误?或者我应该为每个位图使用不同的检测器吗?
我特别指的是这段代码,它是 Google ML Kit 教程的一部分:
https://firebase.google.com/docs/ml-kit/android/recognize-text
FirebaseVisionTextDetector detector = FirebaseVision.getInstance().getVisionTextDetector();
Task<FirebaseVisionText> result =
detector.detectInImage(image)
.addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
@Override
public void onSuccess(FirebaseVisionText firebaseVisionText) {
// Task completed successfully
// ...
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
// ...
}
});
附带说明一下,有人可以为我推荐一种将 onSuccess 方法中的文本传回调用方法的方法吗?我正在考虑使用 obervables 或回调方法。
Googles 任务 API 默认是异步的,onSuccess 或 onFailure 是它们完成时的回调。
您可以通过调用
等待任务完成(在需要同步的地方)Tasks.await(myTask)
您是否有理由要将文本传回调用方法?你能不能把它传递给一个新方法来做你需要做的事情?