mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-02-16 19:30:40 +01:00
set AutoFocus to Idle instead of Cancel after taking a picture
This commit is contained in:
parent
cc63675e3a
commit
df33bf0ddf
@ -323,7 +323,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
||||
mCaptureSession = cameraCaptureSession
|
||||
mPreviewRequestBuilder!!.apply {
|
||||
set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE)
|
||||
set(CaptureRequest.FLASH_MODE, getFlashlightMode(mFlashlightState))
|
||||
set(CaptureRequest.FLASH_MODE, getFlashlightMode())
|
||||
mPreviewRequest = build()
|
||||
}
|
||||
mCaptureSession!!.setRepeatingRequest(mPreviewRequest, mCaptureCallback, mBackgroundHandler)
|
||||
@ -399,6 +399,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
||||
mRotationAtCapture = mActivity.mLastHandledOrientation
|
||||
val captureBuilder = mCameraDevice!!.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE).apply {
|
||||
addTarget(mImageReader!!.surface)
|
||||
set(CaptureRequest.FLASH_MODE, getFlashlightMode())
|
||||
set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE)
|
||||
set(CaptureRequest.JPEG_ORIENTATION, mSensorOrientation)
|
||||
set(CaptureRequest.SCALER_CROP_REGION, mZoomRect)
|
||||
@ -535,9 +536,9 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
||||
|
||||
private fun lockFocus() {
|
||||
try {
|
||||
mCameraState = STATE_WAITING_LOCK
|
||||
mPreviewRequestBuilder!!.apply {
|
||||
set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START)
|
||||
mCameraState = STATE_WAITING_LOCK
|
||||
mCaptureSession!!.capture(build(), mCaptureCallback, mBackgroundHandler)
|
||||
}
|
||||
} catch (e: CameraAccessException) {
|
||||
@ -547,8 +548,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
||||
private fun unlockFocus() {
|
||||
try {
|
||||
mPreviewRequestBuilder!!.apply {
|
||||
set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_CANCEL)
|
||||
set(CaptureRequest.FLASH_MODE, getFlashlightMode(mFlashlightState))
|
||||
set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_IDLE)
|
||||
mCaptureSession!!.capture(build(), mCaptureCallback, mBackgroundHandler)
|
||||
}
|
||||
mCameraState = STATE_PREVIEW
|
||||
@ -565,10 +565,9 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
||||
lockFocus()
|
||||
}
|
||||
|
||||
private fun getFlashlightMode(state: Int) = when (state) {
|
||||
FLASH_OFF -> CameraMetadata.FLASH_MODE_OFF
|
||||
private fun getFlashlightMode() = when (mFlashlightState) {
|
||||
FLASH_ON -> CameraMetadata.FLASH_MODE_TORCH
|
||||
else -> CameraMetadata.FLASH_MODE_SINGLE
|
||||
else -> CameraMetadata.FLASH_MODE_OFF
|
||||
}
|
||||
|
||||
override fun setTargetUri(uri: Uri) {
|
||||
@ -620,8 +619,9 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
||||
|
||||
override fun checkFlashlight() {
|
||||
if (mCameraState == STATE_PREVIEW && mIsFlashSupported) {
|
||||
mPreviewRequestBuilder!!.set(CaptureRequest.FLASH_MODE, getFlashlightMode(mFlashlightState))
|
||||
mCaptureSession!!.setRepeatingRequest(mPreviewRequestBuilder!!.build(), mCaptureCallback, mBackgroundHandler)
|
||||
mPreviewRequestBuilder!!.set(CaptureRequest.FLASH_MODE, getFlashlightMode())
|
||||
mPreviewRequest = mPreviewRequestBuilder!!.build()
|
||||
mCaptureSession!!.setRepeatingRequest(mPreviewRequest, mCaptureCallback, mBackgroundHandler)
|
||||
mActivity.updateFlashlightState(mFlashlightState)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user