add settings option for capture mode

This commit is contained in:
darthpaul
2022-10-22 23:21:58 +01:00
parent 122841b641
commit e412cec759
7 changed files with 74 additions and 6 deletions

View File

@ -26,6 +26,7 @@ import com.simplemobiletools.camera.R
import com.simplemobiletools.camera.extensions.*
import com.simplemobiletools.camera.helpers.*
import com.simplemobiletools.camera.interfaces.MyPreview
import com.simplemobiletools.camera.models.CaptureMode
import com.simplemobiletools.camera.models.MediaOutput
import com.simplemobiletools.camera.models.MySize
import com.simplemobiletools.camera.models.ResolutionOption
@ -210,8 +211,9 @@ class CameraXPreview(
}
private fun buildImageCapture(resolution: Size, rotation: Int): ImageCapture {
val captureMode = getCaptureMode()
return Builder()
.setCaptureMode(CAPTURE_MODE_MINIMIZE_LATENCY)
.setCaptureMode(captureMode)
.setFlashMode(flashMode)
.setJpegQuality(config.photoQuality)
.setTargetRotation(rotation)
@ -219,6 +221,13 @@ class CameraXPreview(
.build()
}
private fun getCaptureMode(): Int {
return when(config.captureMode){
CaptureMode.MINIMISE_LATENCY -> CAPTURE_MODE_MINIMIZE_LATENCY
CaptureMode.MAXIMISE_QUALITY -> CAPTURE_MODE_MAXIMIZE_QUALITY
}
}
private fun buildVideoCapture(): VideoCapture<Recorder> {
val qualitySelector = QualitySelector.from(
videoQualityManager.getUserSelectedQuality(cameraSelector).toCameraXQuality(),