mirror of
				https://github.com/SimpleMobileTools/Simple-Camera.git
				synced 2025-06-27 09:02:59 +02:00 
			
		
		
		
	fix too dark image preview on some devices
This commit is contained in:
		| @@ -18,6 +18,7 @@ import android.os.Build | |||||||
| import android.os.Handler | import android.os.Handler | ||||||
| import android.os.HandlerThread | import android.os.HandlerThread | ||||||
| import android.util.DisplayMetrics | import android.util.DisplayMetrics | ||||||
|  | import android.util.Range | ||||||
| import android.util.Size | import android.util.Size | ||||||
| import android.util.SparseIntArray | import android.util.SparseIntArray | ||||||
| import android.view.MotionEvent | import android.view.MotionEvent | ||||||
| @@ -458,6 +459,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie | |||||||
|                     } else { |                     } else { | ||||||
|                         mPreviewRequestBuilder!!.apply { |                         mPreviewRequestBuilder!!.apply { | ||||||
|                             set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) |                             set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) | ||||||
|  |                             set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getFrameRange()) | ||||||
|                             setFlashAndExposure(this) |                             setFlashAndExposure(this) | ||||||
|                             mPreviewRequest = build() |                             mPreviewRequest = build() | ||||||
|                         } |                         } | ||||||
| @@ -490,6 +492,23 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     private fun getFrameRange(): Range<Int> { | ||||||
|  |         val ranges = getCameraCharacteristics().get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES) | ||||||
|  |         var currRangeSize = -1 | ||||||
|  |         var currMinRange = 0 | ||||||
|  |         var result: Range<Int>? = null | ||||||
|  |         for (range in ranges) { | ||||||
|  |             val diff = range.upper - range.lower | ||||||
|  |             if (diff > currRangeSize || (diff == currRangeSize && range.lower > currMinRange)) { | ||||||
|  |                 currRangeSize = diff | ||||||
|  |                 currMinRange = range.lower | ||||||
|  |                 result = range | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return result!! | ||||||
|  |     } | ||||||
|  |  | ||||||
|     private fun updatePreview() { |     private fun updatePreview() { | ||||||
|         try { |         try { | ||||||
|             mPreviewRequestBuilder!!.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO) |             mPreviewRequestBuilder!!.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO) | ||||||
| @@ -565,6 +584,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie | |||||||
|                 set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) |                 set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) | ||||||
|                 set(CaptureRequest.JPEG_ORIENTATION, mSensorOrientation) |                 set(CaptureRequest.JPEG_ORIENTATION, mSensorOrientation) | ||||||
|                 set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE) |                 set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE) | ||||||
|  |                 set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getFrameRange()) | ||||||
|                 if (mZoomRect != null) { |                 if (mZoomRect != null) { | ||||||
|                     set(CaptureRequest.SCALER_CROP_REGION, mZoomRect) |                     set(CaptureRequest.SCALER_CROP_REGION, mZoomRect) | ||||||
|                 } |                 } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user