Android CameraX Not bound to a valid Camera


造成這個原因的是

imageCapture沒有與相機設備進行綁定,下面是綁定的代碼
val cameraProviderFuture: ListenableFuture<ProcessCameraProvider> = ProcessCameraProvider.getInstance(this)
val processCameraProvider = cameraProviderFuture.get()
processCameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA, imageCapture)

本人所寫的點擊事件和初始化捕獲的全部代碼如下

//拍照
private fun onClick(){
val imagePath = Environment.getExternalStorageDirectory().absolutePath +"/downloads/test.jpg"
val file:File = File(imagePath);
val outputFileOptions = ImageCapture.OutputFileOptions.Builder(file).build()
//綁定攝像機
imageCapture!!.takePicture(outputFileOptions, ContextCompat.getMainExecutor(this),
object : ImageCapture.OnImageSavedCallback {
override fun onError(error: ImageCaptureException)
{
error.printStackTrace()
}
override fun onImageSaved(outputFileResults: ImageCapture.OutputFileResults) {

}
})
}

//捕獲初始化
private fun capturePicture(){
imageCapture = ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
.build()
cameraProvider?.bindToLifecycle(lifecycleOwner!!,cameraSelector!!,
imageCapture,imageAnalysis,preview)
val cameraProviderFuture: ListenableFuture<ProcessCameraProvider> = ProcessCameraProvider.getInstance(this)
val processCameraProvider = cameraProviderFuture.get()
processCameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA, imageCapture)
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM