fix a glitch preventing capturing multiple images in a row
This commit is contained in:
parent
15ba3462c1
commit
8fae1b167a
|
@ -555,6 +555,7 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener {
|
|||
fun drawFocusCircle(x: Float, y: Float) = mFocusCircleView.drawFocusCircle(x, y)
|
||||
|
||||
override fun mediaSaved(path: String) {
|
||||
mPreview?.imageSaved()
|
||||
rescanPaths(arrayListOf(path)) {
|
||||
setupPreviewImage(true)
|
||||
Intent(BROADCAST_REFRESH_MEDIA).apply {
|
||||
|
|
|
@ -36,4 +36,6 @@ interface MyPreview {
|
|||
fun deviceOrientationChanged()
|
||||
|
||||
fun resumeCamera(): Boolean
|
||||
|
||||
fun imageSaved()
|
||||
}
|
||||
|
|
|
@ -155,6 +155,8 @@ class PreviewCameraOne : ViewGroup, SurfaceHolder.Callback, MyPreview {
|
|||
return true
|
||||
}
|
||||
|
||||
override fun imageSaved() {}
|
||||
|
||||
private fun initCamera(): Boolean {
|
||||
if (mCamera == null)
|
||||
return false
|
||||
|
|
|
@ -591,14 +591,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
|||
}
|
||||
|
||||
val captureCallback = object : CameraCaptureSession.CaptureCallback() {
|
||||
override fun onCaptureCompleted(session: CameraCaptureSession, request: CaptureRequest, result: TotalCaptureResult) {
|
||||
mActivity.toggleBottomButtons(false)
|
||||
if (shouldLockFocus()) {
|
||||
unlockFocus()
|
||||
} else {
|
||||
resetPreviewSession()
|
||||
}
|
||||
}
|
||||
override fun onCaptureCompleted(session: CameraCaptureSession, request: CaptureRequest, result: TotalCaptureResult) {}
|
||||
|
||||
override fun onCaptureFailed(session: CameraCaptureSession?, request: CaptureRequest?, failure: CaptureFailure?) {
|
||||
super.onCaptureFailed(session, request, failure)
|
||||
|
@ -753,6 +746,10 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
|||
val texture = mTextureView.surfaceTexture!!
|
||||
texture.setDefaultBufferSize(mPreviewSize!!.width, mPreviewSize!!.height)
|
||||
|
||||
val currentResolution = getCurrentResolution()
|
||||
mImageReader = ImageReader.newInstance(currentResolution.width, currentResolution.height, ImageFormat.JPEG, 2)
|
||||
mImageReader!!.setOnImageAvailableListener(imageAvailableListener, mBackgroundHandler)
|
||||
|
||||
val surface = Surface(texture)
|
||||
mCameraDevice!!.createCaptureSession(Arrays.asList(surface, mImageReader!!.surface), stateCallback, null)
|
||||
} catch (e: Exception) {
|
||||
|
@ -1019,5 +1016,15 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
|||
|
||||
override fun resumeCamera() = true
|
||||
|
||||
override fun imageSaved() {
|
||||
mImageReader?.close()
|
||||
mActivity.toggleBottomButtons(false)
|
||||
if (shouldLockFocus()) {
|
||||
unlockFocus()
|
||||
} else {
|
||||
resetPreviewSession()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue