From e1962d79bb9eae5dbfba667f3e228f0060b94c04 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Fri, 17 Apr 2026 15:19:31 +0700 Subject: [PATCH] fix: switchCamera --- src/views/HomeView.vue | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 055346d..12788ed 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -392,8 +392,26 @@ async function switchCamera() { return } - const targetType: 'front' | 'back' = currentCameraType.value === 'front' ? 'back' : 'front' - await changeCamera(targetType) + const frontCameras = availableCameras.value.filter((device: any) => + identifyCameraType(device.label || '') === 'front' + ) + const backCameras = availableCameras.value.filter((device: any) => + identifyCameraType(device.label || '') === 'back' + ) + + let targetDevice + if (currentCameraType.value === 'front' && backCameras.length > 0) { + targetDevice = backCameras[0] + } else if (frontCameras.length > 0) { + targetDevice = frontCameras[0] + } else { + const nextIndex = (currentCameraIndex.value + 1) % availableCameras.value.length + targetDevice = availableCameras.value[nextIndex] + } + + await camera.value?.changeCamera(targetDevice.deviceId) + currentCameraIndex.value = availableCameras.value.indexOf(targetDevice) + currentCameraType.value = identifyCameraType(targetDevice.label || '') } /** function ถ่ายรูป*/