Я хочу показать фронтальную камеру в макете, который используется только для зеркала, я хочу только это, и у меня может быть несколько простых кнопок над макетом камеры.Примечание: я не хочу фотографировать или что-то еще.Просто хочу показать фронтальную камеру для зеркала.Есть ли лучший способ реализовать это.Я пытался использовать приведенный ниже код, но камера показала неправильное вращение, аналогичное ландшафтному режиму, и изображение растянуто.
surfaceView.holder.addCallback(object : SurfaceHolder.Callback {
private var mCamera:Camera? = null
override fun surfaceDestroyed(holder: SurfaceHolder) {
mCamera?.stopPreview()
mCamera?.release()
mCamera = null
}
override fun surfaceCreated(holder: SurfaceHolder) {
mCamera = getCameraInstance()
try {
mCamera?.setPreviewDisplay(holder)
} catch (exception: IOException) {
mCamera?.release()
mCamera = null
}
}
override fun surfaceChanged(holder: SurfaceHolder, format: Int, width: Int,
height: Int) {
mCamera?.startPreview()
}
})
fun getCameraInstance(): Camera? {
var c: Camera? = null
try {
c = openFrontFacingCamera()
} catch (e: Exception) {
}
return c
}
private fun openFrontFacingCamera(): Camera? {
var cameraCount = 0
var cam: Camera? = null
val cameraInfo = Camera.CameraInfo()
cameraCount = Camera.getNumberOfCameras()
for (camIdx in 0 until cameraCount) {
Camera.getCameraInfo(camIdx, cameraInfo)
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
cam = Camera.open(camIdx)
} catch (e: RuntimeException) {
// Log.e(FragmentActivity.TAG, "Camera failed to open: " + e.localizedMessage)
}
}
}
return cam
}