@@ -21,6 +21,7 @@ import android.content.Context
2121import android.content.pm.PackageManager
2222import android.hardware.camera2.CameraManager
2323import android.hardware.camera2.CaptureRequest
24+ import android.util.Log
2425import android.util.Size
2526import android.view.Surface
2627import androidx.annotation.RequiresPermission
@@ -131,10 +132,12 @@ internal class CameraSource(
131132
132133 @RequiresPermission(Manifest .permission.CAMERA )
133134 override suspend fun setPreview (surface : Surface ) {
135+ Log .e(" startPreviewStopPreviewTest" , " >>>>>>>>>>> set preview in" )
134136 if (isPreviewingFlow.value) {
135137 Logger .w(TAG , " Trying to set preview while previewing" )
136138 }
137139 controller.addOutput(CameraSurface (PREVIEW_NAME , surface))
140+ Log .e(" startPreviewStopPreviewTest" , " >>>>>>>>>>> set preview out" )
138141 }
139142
140143 @SuppressLint(" MissingPermission" )
@@ -196,7 +199,7 @@ internal class CameraSource(
196199 }
197200
198201 @RequiresPermission(Manifest .permission.CAMERA )
199- override suspend fun startPreview (): Unit = previewMutex.withLock {
202+ private suspend fun startPreviewUnsafe () {
200203 if (isPreviewingFlow.value) {
201204 Logger .w(TAG , " Camera is already previewing" )
202205 return
@@ -205,6 +208,11 @@ internal class CameraSource(
205208 _isPreviewingFlow .emit(true )
206209 }
207210
211+ @RequiresPermission(Manifest .permission.CAMERA )
212+ override suspend fun startPreview (): Unit = previewMutex.withLock {
213+ startPreviewUnsafe()
214+ }
215+
208216 /* *
209217 * Starts video preview on [previewSurface].
210218 */
@@ -215,7 +223,7 @@ internal class CameraSource(
215223 return
216224 }
217225 setPreview(previewSurface)
218- startPreview ()
226+ startPreviewUnsafe ()
219227 }
220228
221229 @SuppressLint(" MissingPermission" )
0 commit comments