Kru*_*iya 5 java android image-processing android-camera android-camera2
我正在使用Camera2 扩展示例进行实时图像处理。在此之前我使用的是Camera2 Basic。在基本示例中,我从下面的代码片段中获取实时图像。
val captureRequest = camera.createCaptureRequest(
CameraDevice.TEMPLATE_PREVIEW
).apply {
addTarget(getViewDataBinding()?.viewFinder!!.holder.surface)
addTarget(imageReader.surface)
}
// This will keep sending the capture request as frequently as possible until the
// session is torn down or session.stopRepeating() is called
captureRequest.set(
CaptureRequest.CONTROL_MODE,
CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE
)
captureRequest.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF)
session.setRepeatingRequest(captureRequest.build(), null, cameraHandler)
Run Code Online (Sandbox Code Playgroud)
你可以看到,我在上面的代码中添加了目标imageReader。我使用扩展 API 几乎类似的方式。但是在ExtensionSessionConfiguration配置方法中。
cameraExtensionSession = session
try {
val captureRequest = camera.createCaptureRequest(
CameraDevice.TEMPLATE_PREVIEW
).apply {
addTarget(previewSurface)
addTarget(imageReader.surface)
}
captureRequest.set(
CaptureRequest.CONTROL_MODE,
CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE
)
cameraExtensionSession.setRepeatingRequest(
captureRequest.build(),
Dispatchers.IO.asExecutor(), captureCallbacks
)
} catch (e: CameraAccessException) {
Toast.makeText(
this@LiveCameraActivity, "Failed to preview capture request.",
Toast.LENGTH_SHORT
).show()
finish()
}
Run Code Online (Sandbox Code Playgroud)
上面的代码给了我如下错误
java.lang.IllegalArgumentException: Invalid repeating request output target!
at android.hardware.camera2.impl.CameraExtensionSessionImpl.setRepeatingRequest(CameraExtensionSessionImpl.java:442)
at com.cherish.smartcam.ui.liveCamera.LiveCameraActivity$startPreview$extensionConfiguration$1.onConfigured(CameraActivity.kt:399)
Run Code Online (Sandbox Code Playgroud)
我已将图像配置为 JPEG。我的问题在这里,