Sha*_*aon 5 camera android callback android-camera2 android-camerax
在相机 1 中,我们有FaceDetectionListener方法camera.startFaceDetection()。使用这种方式可以更容易地找到面孔。
在相机 2 中,我们可以使用 CameraCaptureSession.CaptureCallback() 方法和此静态变量执行相同操作
Integer mode = result.get(CaptureResult.STATISTICS_FACE_DETECT_MODE);
Face[] faces = result.get(CaptureResult.STATISTICS_FACES);
Run Code Online (Sandbox Code Playgroud)
现在有一个名为 CameraX 的新相机库。它是Camera2的包装,推荐使用。如果是Camera 2的封装,我们可以很容易得到如下的回调结果CameraCaptureSession.CaptureCallback()
但经过三天的尝试,我未能找到解决方案。
谁能给我像camera2一样调用以下方法的解决方案?
在相机2中,
private val mCaptureCallback = object : CameraCaptureSession.CaptureCallback() {
override fun onCaptureProgressed(
session: CameraCaptureSession,
request: CaptureRequest,
partialResult: CaptureResult
) {
}
override fun onCaptureCompleted(
session: CameraCaptureSession,
request: CaptureRequest,
result: TotalCaptureResult
) {
}
}
mCaptureSession.setRepeatingRequest(mPreviewRequest, mCaptureCallback,
mBackgroundHandler);
Run Code Online (Sandbox Code Playgroud)
如何使用CameraX获取回调结果?
您可以使用CameraX 的camera2互操作类,它在CameraX 和Camera2 API 之间提供互操作层。
如果您需要CaptureCallback在某个用例(例如Preview用例)上设置 a 以跟踪其捕获请求的进度,您可以按如下方式执行:
// Set up and configure the Preview's builder
val previewBuilder = Preview.Builder()
// Create the callback you want to attach to the Preview use case
val captureCallback = object : CameraCaptureSession.CaptureCallback() {
...
}
// Create an Extender to attach Camera2 options
val previewExtender = Camera2Interop.Extender(previewBuilder)
// Attach the Camera2 CaptureCallback
previewExtender.setSessionCaptureCallback(captureCallback)
// Initialize the Preview use case
val preview = previewBuilder.build()
// bind the Preview use case
cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |