gpt4 book ai didi

android - 某些设备上的 CameraX 黑屏预览

转载 作者:行者123 更新时间:2023-12-04 13:33:00 57 4
gpt4 key购买 nike

我正在使用 camerax 在我的 android 应用程序中捕获图像。
对我来说一切都很好,但是一些用户在使用 camerax Activity 时报告黑色预览屏幕。
但是当用户从最近的应用程序中打开应用程序时,预览似乎可以工作。
所以,我认为问题可能出在生命周期绑定(bind)上。
我在用

implementation "androidx.camera:camera-camera2:1.0.0-beta08"
这是我的代码
    <androidx.camera.view.PreviewView
android:id="@+id/viewFinder"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>


private fun startCamera() {
val cameraProviderFuture = ProcessCameraProvider.getInstance(this)

cameraProviderFuture.addListener({
cameraProvider = cameraProviderFuture.get()

val preview = Preview.Builder()
.build()
.also {
it.setSurfaceProvider(viewFinder.createSurfaceProvider())
}

imageCapture = ImageCapture.Builder()
.build()

val cameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()

try {
cameraProvider.unbindAll()
cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageCapture)

} catch (exc: Exception) {
Log.e(TAG, "Use case binding failed", exc)
}

}, ContextCompat.getMainExecutor(this))
}


private fun takePhoto() {
val imageCapture = imageCapture ?: return

val photoFile = File(
getExternalFilesDir("scantmp"),
SimpleDateFormat(FILENAME_FORMAT, Locale.US
).format(System.currentTimeMillis()) + ".png")

val outputOptions = ImageCapture
.OutputFileOptions
.Builder(photoFile)
.build()

imageCapture.takePicture(
outputOptions, ContextCompat.getMainExecutor(this), object : ImageCapture.OnImageSavedCallback {
override fun onError(exc: ImageCaptureException) {
Log.e(TAG, "Photo capture failed: ${exc.message}", exc)
}

override fun onImageSaved(output: ImageCapture.OutputFileResults) {
savedImageUri = Uri.fromFile(photoFile)
flash.visibility = View.GONE
closeCamera.visibility = View.GONE
takeAgain.visibility = View.VISIBLE
saveImage.visibility = View.VISIBLE
imgCapture.visibility = View.INVISIBLE
imageCaptured.setImageURI(Uri.fromFile(photoFile))
imageCaptured.visibility = View.VISIBLE
viewFinder.visibility = View.GONE

}
})
}

最佳答案

上述问题在 1.0.0-beta11 更新中得到解决。
尝试将您的库更新到最新版本以解决此问题。

关于android - 某些设备上的 CameraX 黑屏预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63894722/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com