From dfe96eb30c4dfd34c424c0c297e672a8aca4904a Mon Sep 17 00:00:00 2001 From: 21pages Date: Wed, 1 Nov 2023 09:22:49 +0800 Subject: [PATCH] fix android ci, replace use with try-finally Signed-off-by: 21pages --- .../main/kotlin/com/carriez/flutter_hbb/MainService.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt b/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt index 535a3f8c3..51a72b41a 100644 --- a/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt +++ b/flutter/android/app/src/main/kotlin/com/carriez/flutter_hbb/MainService.kt @@ -349,12 +349,17 @@ class MainService : Service() { ).apply { setOnImageAvailableListener({ imageReader: ImageReader -> try { - imageReader.acquireLatestImage().use { image -> - if (image == null) return@setOnImageAvailableListener + // https://stackoverflow.com/questions/35136715/try-with-resources-use-extension-function-in-kotlin-does-not-always-work + // https://stackoverflow.com/questions/72537045/kotlin-use-with-autocloseable-type-and-a-lambda-returning-boolean + val image = imageReader.acquireLatestImage() + if (image == null) return@setOnImageAvailableListener + try { val planes = image.planes val buffer = planes[0].buffer buffer.rewind() onVideoFrameUpdate(buffer) + } finally { + image.close() } } catch (ignored: java.lang.Exception) { }