【发布时间】:2021-11-27 09:15:18
【问题描述】:
我正在尝试使用 ml-kit 运行多个进程,我已经搜索过了,我发现的唯一解决方案是连续执行所有任务(如何?)或使用 RXJava 和 zip实用程序,但这似乎与我需要的不匹配。
我已经尝试编写以下代码,但我不确定它有多好,这是一个好方法吗?
override fun analyze(image: ImageProxy) {
val inputImage = InputImage.fromMediaImage(image.image!!, image.imageInfo.rotationDegrees)
val tasks = mutableListOf<Task<*>>()
val onComplete = { t: Task<*> ->
tasks.remove(t)
if (tasks.isEmpty()) {
image.close()
}
}
barcodeScanner?.process(inputImage)
?.addOnSuccessListener {
// Do stuff with the result
}
?.addOnCompleteListener(onComplete)
?.also {
tasks.add(it)
}
imageLabeler?.process(inputImage)
?.addOnSuccessListener {
// Do stuff with the result
}
?.addOnCompleteListener(onComplete)
?.also {
tasks.add(it)
}
faceDetector?.process(inputImage)
?.addOnSuccessListener {
// Do stuff with the result
}
?.addOnCompleteListener(onComplete)
?.also {
tasks.add(it)
}
}
【问题讨论】:
标签: android google-mlkit