我有一个应用程序,它ImageReader
用Tesseract
. 它们连续工作并在 15-60 分钟后重新加载设备(在小米 Note 9T 上测试)。我有没有机会理解重新加载的原因?
使用分析器,我看不到可能导致重新加载的重大变化。
捕获方法
fun startCapture(frames: CropFrames, token: Token) {
executeWithDelay(250) {
this.frames = frames
projection = mgr!!.getMediaProjection(resultCode, resultData!!)
//todo add callback to dog
val cb: MediaProjection.Callback = object : MediaProjection.Callback() {
override fun onStop() {
vdisplay!!.release() //?
callback.onCaptured(latestBitmap!!, VisionParams())
}
}
vdisplay = projection?.createVirtualDisplay(
NAME,
width,
height,
App.densityDpi,
FLAGS,
imageReader.surface,
null,
null
)
projection?.registerCallback(cb, null)
}
}
停止捕获
fun stopCapture() {
if (projection != null) {
projection!!.stop()
vdisplay!!.release()
projection = null
}
}
阅读文本的方法
fun read(
bitmap: Bitmap,
lastVisionParams: VisionParams,
delay: Long,
result: (caption: String, lastVisionParams: VisionParams) -> Unit
) {
App.storageManager.executorService.execute {
tessBaseAPI.setImage(bitmap)
startCountdown()
val recognizedText: String = tessBaseAPI.utF8Text
endCountdown()
println("text = $recognizedText")
App.storageManager.mainThreadHandler.post {
result.invoke(recognizedText, lastVisionParams)
}
}
}
任何提示或建议都适用。谢谢!
编辑
可能有人知道如何获取任何日志,为什么手机重新启动?