From d2791f3e94bc0c5d9b71a18602248f59bf474182 Mon Sep 17 00:00:00 2001 From: WangLin305 Date: Thu, 19 Jun 2025 10:51:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=97=AA=E5=85=89?= =?UTF-8?q?=E7=81=AF=E5=BC=80=E5=90=AF=E5=88=87=E6=8D=A2=E6=91=84=E5=83=8F?= =?UTF-8?q?=E5=A4=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Index.ets | 4 +++- entry/src/main/ets/views/ModeComponent.ets | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 1c95b4e..69f018a 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -114,7 +114,9 @@ struct Index { SlideComponent() // photograph - ModeComponent() + ModeComponent({ + flashMode: $flashMode + }) Row({ space: Constants.ROW_SPACE_24 }) { FlashingLightComponent({ diff --git a/entry/src/main/ets/views/ModeComponent.ets b/entry/src/main/ets/views/ModeComponent.ets index b365f9a..5e6aba8 100644 --- a/entry/src/main/ets/views/ModeComponent.ets +++ b/entry/src/main/ets/views/ModeComponent.ets @@ -27,6 +27,7 @@ const TAG: string = 'ModeComponent'; export struct ModeComponent { @StorageLink('isOpenEditPage') @Watch('changePageState') isOpenEditPage: boolean = false; @StorageLink('cameraIndex') cameraIndex: number = 0; + @Link flashMode: camera.FlashMode; @State sceneMode: camera.SceneMode = camera.SceneMode.NORMAL_PHOTO; @State isRecording: boolean = false; @@ -188,7 +189,9 @@ export struct ModeComponent { cameraDeviceIndex ? cameraDeviceIndex = 0 : cameraDeviceIndex = 1; GlobalContext.get().setObject('cameraDeviceIndex', cameraDeviceIndex); this.cameraIndex = cameraDeviceIndex; + this.flashMode = camera.FlashMode.FLASH_MODE_CLOSE; await CameraService.initCamera(surfaceId, cameraDeviceIndex); + CameraService.hasFlashFn(this.flashMode); }) } } -- Gitee From 0cf6830145608f6bf76e8066bd357b3de5699d25 Mon Sep 17 00:00:00 2001 From: WangLin305 Date: Thu, 19 Jun 2025 11:09:30 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=97=AA=E5=85=89?= =?UTF-8?q?=E7=81=AF=E5=BC=80=E5=90=AF=E5=88=87=E6=8D=A2=E6=91=84=E5=83=8F?= =?UTF-8?q?=E5=A4=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Index.ets | 2 ++ entry/src/main/ets/views/FlashingLightComponent.ets | 4 +++- entry/src/main/ets/views/ModeComponent.ets | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 69f018a..294ed25 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -63,6 +63,8 @@ struct Index { async onPageHide(): Promise { Logger.info(TAG, 'onPageHide'); + this.flashMode = camera.FlashMode.FLASH_MODE_CLOSE; + CameraService.hasFlashFn(this.flashMode); } build() { diff --git a/entry/src/main/ets/views/FlashingLightComponent.ets b/entry/src/main/ets/views/FlashingLightComponent.ets index 6b631c8..bed6a12 100644 --- a/entry/src/main/ets/views/FlashingLightComponent.ets +++ b/entry/src/main/ets/views/FlashingLightComponent.ets @@ -21,6 +21,7 @@ const TAG: string = 'FlashingLightComponent'; @Component export struct FlashingLightComponent { + @StorageLink('sceneMode') sceneMode: camera.SceneMode = camera.SceneMode.NORMAL_PHOTO; @Link @Watch('flashModeChange') flashMode: camera.FlashMode; @State flashIconResource: Resource = $r('app.media.ic_camera_public_flash_off'); @@ -55,7 +56,8 @@ export struct FlashingLightComponent { .backgroundColor($r('app.color.flash_background_color')) .borderRadius($r('app.string.50px')) .onClick(() => { - this.flashMode = (this.flashMode + 1) % 4; + this.sceneMode === camera.SceneMode.NORMAL_PHOTO ? + (this.flashMode = (this.flashMode + 1) % 4) : (this.flashMode = this.flashMode === 0 ? 3 : 0); Logger.info(TAG, `flashMode: ${this.flashMode}`); CameraService.hasFlashFn(this.flashMode); }) diff --git a/entry/src/main/ets/views/ModeComponent.ets b/entry/src/main/ets/views/ModeComponent.ets index 5e6aba8..6cd0a97 100644 --- a/entry/src/main/ets/views/ModeComponent.ets +++ b/entry/src/main/ets/views/ModeComponent.ets @@ -27,8 +27,8 @@ const TAG: string = 'ModeComponent'; export struct ModeComponent { @StorageLink('isOpenEditPage') @Watch('changePageState') isOpenEditPage: boolean = false; @StorageLink('cameraIndex') cameraIndex: number = 0; + @StorageLink('sceneMode') sceneMode: camera.SceneMode = camera.SceneMode.NORMAL_PHOTO; @Link flashMode: camera.FlashMode; - @State sceneMode: camera.SceneMode = camera.SceneMode.NORMAL_PHOTO; @State isRecording: boolean = false; changePageState(): void { @@ -82,10 +82,12 @@ export struct ModeComponent { return; } this.sceneMode = camera.SceneMode.NORMAL_PHOTO; + this.flashMode = camera.FlashMode.FLASH_MODE_CLOSE; CameraService.setSceneMode(this.sceneMode); let cameraDeviceIndex = GlobalContext.get().getT('cameraDeviceIndex'); let surfaceId = GlobalContext.get().getT('xComponentSurfaceId'); await CameraService.initCamera(surfaceId, cameraDeviceIndex); + CameraService.hasFlashFn(this.flashMode); }) Column() { @@ -101,10 +103,12 @@ export struct ModeComponent { return; } this.sceneMode = camera.SceneMode.NORMAL_VIDEO; + this.flashMode = camera.FlashMode.FLASH_MODE_CLOSE; CameraService.setSceneMode(this.sceneMode); let cameraDeviceIndex = GlobalContext.get().getT('cameraDeviceIndex'); let surfaceId = GlobalContext.get().getT('xComponentSurfaceId'); await CameraService.initCamera(surfaceId, cameraDeviceIndex); + CameraService.hasFlashFn(this.flashMode); }) } .height(Constants.CAPTURE_ROW_HEIGHT) -- Gitee