@@ -3,6 +3,7 @@ package ai.quickpose.camera
33import ai.quickpose.core.QuickPose
44import android.content.Context
55import android.util.AttributeSet
6+ import android.util.Size
67import android.view.SurfaceView
78import android.view.View
89import android.widget.FrameLayout
@@ -14,22 +15,29 @@ constructor(
1415 private var quickPose: QuickPose ,
1516 attrs: AttributeSet ? = null ,
1617 defStyleAttr: Int = 0 ,
18+ targetResolution: Size = Size (1080 , 1920 )
1719) : FrameLayout (context, attrs, defStyleAttr) {
1820
1921 private var frontCameraView: QuickPoseCameraView ? = null
2022 private var backCameraView: QuickPoseCameraView ? = null
2123 private var frontOverlayView: SurfaceView ? = null
2224 private var backOverlayView: SurfaceView ? = null
2325
26+ var aspectRatio = 1920f / 1080f
27+
2428 init {
25- frontCameraView = QuickPoseCameraView (isFrontCamera = true , quickPose, context)
29+ frontCameraView =
30+ QuickPoseCameraView (isFrontCamera = true , quickPose, context, targetResolution)
31+ frontCameraView?.visibility = View .VISIBLE
2632 addView(frontCameraView)
2733
28- backCameraView = QuickPoseCameraView (isFrontCamera = false , quickPose, context)
34+ backCameraView =
35+ QuickPoseCameraView (isFrontCamera = false , quickPose, context, targetResolution)
2936 backCameraView?.visibility = View .INVISIBLE
3037 addView(backCameraView)
3138
3239 frontOverlayView = SurfaceView (context)
40+ frontOverlayView?.visibility = View .VISIBLE
3341 addView(frontOverlayView)
3442
3543 backOverlayView = SurfaceView (context)
@@ -42,7 +50,7 @@ constructor(
4250 backCameraView?.stop()
4351 }
4452
45- suspend fun start (useFrontCamera : Boolean ) {
53+ suspend fun start (useFrontCamera : Boolean ): Float {
4654 if (useFrontCamera) {
4755 backCameraView?.stop()
4856
@@ -52,7 +60,7 @@ constructor(
5260 frontCameraView?.visibility = View .VISIBLE
5361 frontOverlayView?.visibility = View .VISIBLE
5462
55- frontCameraView?.start()
63+ this .aspectRatio = frontCameraView?.start() ? : 1920f / 1080f
5664 quickPose.setOverlayView(frontOverlayView)
5765 } else {
5866 frontCameraView?.stop()
@@ -62,8 +70,9 @@ constructor(
6270 backCameraView?.visibility = View .VISIBLE
6371 backOverlayView?.visibility = View .VISIBLE
6472
65- backCameraView?.start()
73+ this .aspectRatio = backCameraView?.start() ? : 1920f / 1080f
6674 quickPose.setOverlayView(backOverlayView)
6775 }
76+ return this .aspectRatio
6877 }
6978}
0 commit comments