From 63858e7a1b1cfaf50a3910b4f58e419e8faf83b8 Mon Sep 17 00:00:00 2001 From: chinese-deer Date: Tue, 25 Nov 2025 13:51:09 +0800 Subject: [PATCH 1/2] add CameraKit Demo Signed-off-by: chinese-deer --- CameraKit/DualPreview/.gitignore | 12 + CameraKit/DualPreview/AppScope/app.json5 | 10 + .../resources/base/element/string.json | 8 + .../resources/base/media/background.png | Bin 0 -> 91942 bytes .../resources/base/media/foreground.png | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json | 7 + CameraKit/DualPreview/LICENSE | 78 +++ CameraKit/DualPreview/README.md | 65 +++ CameraKit/DualPreview/build-profile.json5 | 64 +++ CameraKit/DualPreview/camera/.gitignore | 6 + CameraKit/DualPreview/camera/BuildProfile.ets | 17 + CameraKit/DualPreview/camera/Index.ets | 22 + .../DualPreview/camera/build-profile.json5 | 21 + CameraKit/DualPreview/camera/hvigorfile.ts | 6 + .../DualPreview/camera/oh-package-lock.json5 | 19 + CameraKit/DualPreview/camera/oh-package.json5 | 11 + .../main/ets/cameramanagers/CameraManager.ets | 231 ++++++++ .../cameramanagers/ImageReceiverManager.ets | 148 +++++ .../main/ets/cameramanagers/OutputManager.ets | 33 ++ .../main/ets/cameramanagers/PhotoManager.ets | 396 +++++++++++++ .../ets/cameramanagers/PreviewManager.ets | 105 ++++ .../main/ets/cameramanagers/VideoManager.ets | 419 ++++++++++++++ .../src/main/ets/components/GridLine.ets | 58 ++ .../main/ets/components/LevelIndicator.ets | 73 +++ .../main/ets/constants/CameraConstants.ets | 20 + .../DualPreview/camera/src/main/module.json5 | 10 + CameraKit/DualPreview/commons/.gitignore | 6 + .../DualPreview/commons/BuildProfile.ets | 17 + CameraKit/DualPreview/commons/Index.ets | 16 + .../DualPreview/commons/build-profile.json5 | 20 + CameraKit/DualPreview/commons/hvigorfile.ts | 6 + .../DualPreview/commons/oh-package.json5 | 9 + .../commons/src/main/ets/utils/Logger.ets | 45 ++ .../DualPreview/commons/src/main/module.json5 | 10 + CameraKit/DualPreview/entry/.gitignore | 6 + .../DualPreview/entry/build-profile.json5 | 26 + CameraKit/DualPreview/entry/hvigorfile.ts | 6 + .../DualPreview/entry/oh-package-lock.json5 | 29 + CameraKit/DualPreview/entry/oh-package.json5 | 13 + .../src/main/ets/constants/Constants.ets | 31 + .../main/ets/entryability/EntryAbility.ets | 62 ++ .../entry/src/main/ets/pages/Index.ets | 534 ++++++++++++++++++ .../entry/src/main/ets/utils/CommonUtil.ets | 103 ++++ .../src/main/ets/utils/PermissionManager.ets | 40 ++ .../src/main/ets/utils/RefreshableTimer.ets | 53 ++ .../entry/src/main/ets/utils/WindowUtil.ets | 61 ++ .../main/ets/viewmodels/PreviewViewModel.ets | 164 ++++++ .../src/main/ets/views/ModeButtonsView.ets | 83 +++ .../src/main/ets/views/OperateButtonsView.ets | 267 +++++++++ .../src/main/ets/views/SettingButtonsView.ets | 250 ++++++++ .../src/main/ets/views/ZoomButtonsView.ets | 69 +++ .../DualPreview/entry/src/main/module.json5 | 110 ++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/float.json | 8 + .../main/resources/base/element/string.json | 140 +++++ .../main/resources/base/media/background.png | Bin 0 -> 91942 bytes .../main/resources/base/media/flash_10s.png | Bin 0 -> 2270 bytes .../main/resources/base/media/flash_2s.png | Bin 0 -> 1557 bytes .../main/resources/base/media/flash_5s.png | Bin 0 -> 1634 bytes .../main/resources/base/media/focus_box.png | Bin 0 -> 991 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/media/toggle_position.png | Bin 0 -> 2908 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/dark/element/color.json | 8 + .../main/resources/en_US/element/string.json | 140 +++++ .../main/resources/zh_CN/element/string.json | 140 +++++ .../src/ohosTest/ets/test/Ability.test.ets | 128 +++++ .../entry/src/ohosTest/ets/test/List.test.ets | 6 + .../entry/src/ohosTest/module.json5 | 12 + .../DualPreview/entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 ++ .../DualPreview/hvigor/hvigor-config.json5 | 22 + CameraKit/DualPreview/hvigorfile.ts | 6 + CameraKit/DualPreview/oh-package-lock.json5 | 20 + CameraKit/DualPreview/oh-package.json5 | 9 + .../screenshots/devices/camera.PNG | Bin 0 -> 417778 bytes CameraKit/RotationDisplayCamera/.gitignore | 12 + .../RotationDisplayCamera/AppScope/app.json5 | 10 + .../resources/base/element/string.json | 8 + .../resources/base/media/background.png | Bin 0 -> 91942 bytes .../resources/base/media/foreground.png | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json | 7 + CameraKit/RotationDisplayCamera/LICENSE | 78 +++ CameraKit/RotationDisplayCamera/README.md | 84 +++ .../RotationDisplayCamera/build-profile.json5 | 64 +++ .../RotationDisplayCamera/camera/.gitignore | 6 + .../camera/BuildProfile.ets | 17 + .../RotationDisplayCamera/camera/Index.ets | 22 + .../camera/build-profile.json5 | 21 + .../camera/hvigorfile.ts | 6 + .../camera/oh-package-lock.json5 | 19 + .../camera/oh-package.json5 | 11 + .../main/ets/cameramanagers/CameraManager.ets | 243 ++++++++ .../cameramanagers/ImageReceiverManager.ets | 148 +++++ .../main/ets/cameramanagers/OutputManager.ets | 33 ++ .../main/ets/cameramanagers/PhotoManager.ets | 396 +++++++++++++ .../ets/cameramanagers/PreviewManager.ets | 122 ++++ .../main/ets/cameramanagers/VideoManager.ets | 419 ++++++++++++++ .../src/main/ets/components/GridLine.ets | 58 ++ .../main/ets/components/LevelIndicator.ets | 73 +++ .../main/ets/constants/CameraConstants.ets | 20 + .../camera/src/main/module.json5 | 10 + .../RotationDisplayCamera/commons/.gitignore | 6 + .../commons/BuildProfile.ets | 17 + .../RotationDisplayCamera/commons/Index.ets | 16 + .../commons/build-profile.json5 | 20 + .../commons/hvigorfile.ts | 6 + .../commons/oh-package.json5 | 9 + .../commons/src/main/ets/utils/Logger.ets | 45 ++ .../commons/src/main/module.json5 | 10 + .../RotationDisplayCamera/entry/.gitignore | 6 + .../entry/build-profile.json5 | 26 + .../RotationDisplayCamera/entry/hvigorfile.ts | 6 + .../entry/oh-package-lock.json5 | 29 + .../entry/oh-package.json5 | 13 + .../src/main/ets/constants/Constants.ets | 31 + .../main/ets/entryability/EntryAbility.ets | 62 ++ .../entry/src/main/ets/pages/Index.ets | 523 +++++++++++++++++ .../entry/src/main/ets/utils/CommonUtil.ets | 103 ++++ .../src/main/ets/utils/PermissionManager.ets | 40 ++ .../src/main/ets/utils/RefreshableTimer.ets | 53 ++ .../entry/src/main/ets/utils/WindowUtil.ets | 61 ++ .../main/ets/viewmodels/PreviewViewModel.ets | 164 ++++++ .../src/main/ets/views/ModeButtonsView.ets | 82 +++ .../src/main/ets/views/OperateButtonsView.ets | 270 +++++++++ .../src/main/ets/views/SettingButtonsView.ets | 250 ++++++++ .../src/main/ets/views/ZoomButtonsView.ets | 69 +++ .../entry/src/main/module.json5 | 111 ++++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/float.json | 8 + .../main/resources/base/element/string.json | 140 +++++ .../main/resources/base/media/background.png | Bin 0 -> 91942 bytes .../main/resources/base/media/flash_10s.png | Bin 0 -> 2270 bytes .../main/resources/base/media/flash_2s.png | Bin 0 -> 1557 bytes .../main/resources/base/media/flash_5s.png | Bin 0 -> 1634 bytes .../main/resources/base/media/focus_box.png | Bin 0 -> 991 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 8805 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/media/toggle_position.png | Bin 0 -> 2908 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/dark/element/color.json | 8 + .../main/resources/en_US/element/string.json | 140 +++++ .../main/resources/zh_CN/element/string.json | 140 +++++ .../src/ohosTest/ets/test/Ability.test.ets | 128 +++++ .../entry/src/ohosTest/ets/test/List.test.ets | 6 + .../entry/src/ohosTest/module.json5 | 12 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 ++ .../hvigor/hvigor-config.json5 | 22 + CameraKit/RotationDisplayCamera/hvigorfile.ts | 6 + .../oh-package-lock.json5 | 21 + .../RotationDisplayCamera/oh-package.json5 | 9 + CameraKit/RotationDisplayCamera/ohosTest.md | 9 + .../screenshots/devices/camera.png | Bin 0 -> 220791 bytes 159 files changed, 9200 insertions(+) create mode 100644 CameraKit/DualPreview/.gitignore create mode 100644 CameraKit/DualPreview/AppScope/app.json5 create mode 100644 CameraKit/DualPreview/AppScope/resources/base/element/string.json create mode 100644 CameraKit/DualPreview/AppScope/resources/base/media/background.png create mode 100644 CameraKit/DualPreview/AppScope/resources/base/media/foreground.png create mode 100644 CameraKit/DualPreview/AppScope/resources/base/media/layered_image.json create mode 100644 CameraKit/DualPreview/LICENSE create mode 100644 CameraKit/DualPreview/README.md create mode 100644 CameraKit/DualPreview/build-profile.json5 create mode 100644 CameraKit/DualPreview/camera/.gitignore create mode 100644 CameraKit/DualPreview/camera/BuildProfile.ets create mode 100644 CameraKit/DualPreview/camera/Index.ets create mode 100644 CameraKit/DualPreview/camera/build-profile.json5 create mode 100644 CameraKit/DualPreview/camera/hvigorfile.ts create mode 100644 CameraKit/DualPreview/camera/oh-package-lock.json5 create mode 100644 CameraKit/DualPreview/camera/oh-package.json5 create mode 100644 CameraKit/DualPreview/camera/src/main/ets/cameramanagers/CameraManager.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/cameramanagers/OutputManager.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PhotoManager.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PreviewManager.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/cameramanagers/VideoManager.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/components/GridLine.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/components/LevelIndicator.ets create mode 100644 CameraKit/DualPreview/camera/src/main/ets/constants/CameraConstants.ets create mode 100644 CameraKit/DualPreview/camera/src/main/module.json5 create mode 100644 CameraKit/DualPreview/commons/.gitignore create mode 100644 CameraKit/DualPreview/commons/BuildProfile.ets create mode 100644 CameraKit/DualPreview/commons/Index.ets create mode 100644 CameraKit/DualPreview/commons/build-profile.json5 create mode 100644 CameraKit/DualPreview/commons/hvigorfile.ts create mode 100644 CameraKit/DualPreview/commons/oh-package.json5 create mode 100644 CameraKit/DualPreview/commons/src/main/ets/utils/Logger.ets create mode 100644 CameraKit/DualPreview/commons/src/main/module.json5 create mode 100644 CameraKit/DualPreview/entry/.gitignore create mode 100644 CameraKit/DualPreview/entry/build-profile.json5 create mode 100644 CameraKit/DualPreview/entry/hvigorfile.ts create mode 100644 CameraKit/DualPreview/entry/oh-package-lock.json5 create mode 100644 CameraKit/DualPreview/entry/oh-package.json5 create mode 100644 CameraKit/DualPreview/entry/src/main/ets/constants/Constants.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/pages/Index.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/utils/CommonUtil.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/utils/PermissionManager.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/utils/RefreshableTimer.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/utils/WindowUtil.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/viewmodels/PreviewViewModel.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/views/ModeButtonsView.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/views/OperateButtonsView.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/views/SettingButtonsView.ets create mode 100644 CameraKit/DualPreview/entry/src/main/ets/views/ZoomButtonsView.ets create mode 100644 CameraKit/DualPreview/entry/src/main/module.json5 create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/element/color.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/element/float.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/element/string.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/background.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/flash_10s.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/flash_2s.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/flash_5s.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/focus_box.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/foreground.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/layered_image.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/startIcon.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/media/toggle_position.png create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/profile/backup_config.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/base/profile/main_pages.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/dark/element/color.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/en_US/element/string.json create mode 100644 CameraKit/DualPreview/entry/src/main/resources/zh_CN/element/string.json create mode 100644 CameraKit/DualPreview/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 CameraKit/DualPreview/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 CameraKit/DualPreview/entry/src/ohosTest/module.json5 create mode 100644 CameraKit/DualPreview/entry/src/test/List.test.ets create mode 100644 CameraKit/DualPreview/entry/src/test/LocalUnit.test.ets create mode 100644 CameraKit/DualPreview/hvigor/hvigor-config.json5 create mode 100644 CameraKit/DualPreview/hvigorfile.ts create mode 100644 CameraKit/DualPreview/oh-package-lock.json5 create mode 100644 CameraKit/DualPreview/oh-package.json5 create mode 100644 CameraKit/DualPreview/screenshots/devices/camera.PNG create mode 100644 CameraKit/RotationDisplayCamera/.gitignore create mode 100644 CameraKit/RotationDisplayCamera/AppScope/app.json5 create mode 100644 CameraKit/RotationDisplayCamera/AppScope/resources/base/element/string.json create mode 100644 CameraKit/RotationDisplayCamera/AppScope/resources/base/media/background.png create mode 100644 CameraKit/RotationDisplayCamera/AppScope/resources/base/media/foreground.png create mode 100644 CameraKit/RotationDisplayCamera/AppScope/resources/base/media/layered_image.json create mode 100644 CameraKit/RotationDisplayCamera/LICENSE create mode 100644 CameraKit/RotationDisplayCamera/README.md create mode 100644 CameraKit/RotationDisplayCamera/build-profile.json5 create mode 100644 CameraKit/RotationDisplayCamera/camera/.gitignore create mode 100644 CameraKit/RotationDisplayCamera/camera/BuildProfile.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/Index.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/build-profile.json5 create mode 100644 CameraKit/RotationDisplayCamera/camera/hvigorfile.ts create mode 100644 CameraKit/RotationDisplayCamera/camera/oh-package-lock.json5 create mode 100644 CameraKit/RotationDisplayCamera/camera/oh-package.json5 create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/CameraManager.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/OutputManager.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PhotoManager.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PreviewManager.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/VideoManager.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/components/GridLine.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/components/LevelIndicator.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/ets/constants/CameraConstants.ets create mode 100644 CameraKit/RotationDisplayCamera/camera/src/main/module.json5 create mode 100644 CameraKit/RotationDisplayCamera/commons/.gitignore create mode 100644 CameraKit/RotationDisplayCamera/commons/BuildProfile.ets create mode 100644 CameraKit/RotationDisplayCamera/commons/Index.ets create mode 100644 CameraKit/RotationDisplayCamera/commons/build-profile.json5 create mode 100644 CameraKit/RotationDisplayCamera/commons/hvigorfile.ts create mode 100644 CameraKit/RotationDisplayCamera/commons/oh-package.json5 create mode 100644 CameraKit/RotationDisplayCamera/commons/src/main/ets/utils/Logger.ets create mode 100644 CameraKit/RotationDisplayCamera/commons/src/main/module.json5 create mode 100644 CameraKit/RotationDisplayCamera/entry/.gitignore create mode 100644 CameraKit/RotationDisplayCamera/entry/build-profile.json5 create mode 100644 CameraKit/RotationDisplayCamera/entry/hvigorfile.ts create mode 100644 CameraKit/RotationDisplayCamera/entry/oh-package-lock.json5 create mode 100644 CameraKit/RotationDisplayCamera/entry/oh-package.json5 create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/constants/Constants.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/pages/Index.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/CommonUtil.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/PermissionManager.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/RefreshableTimer.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/WindowUtil.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/viewmodels/PreviewViewModel.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ModeButtonsView.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/views/OperateButtonsView.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/views/SettingButtonsView.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ZoomButtonsView.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/module.json5 create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/color.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/float.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/string.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/background.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/flash_10s.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/flash_2s.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/flash_5s.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/focus_box.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/foreground.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/layered_image.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/startIcon.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/toggle_position.png create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/backup_config.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/main_pages.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/dark/element/color.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/en_US/element/string.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/main/resources/zh_CN/element/string.json create mode 100644 CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/ohosTest/module.json5 create mode 100644 CameraKit/RotationDisplayCamera/entry/src/test/List.test.ets create mode 100644 CameraKit/RotationDisplayCamera/entry/src/test/LocalUnit.test.ets create mode 100644 CameraKit/RotationDisplayCamera/hvigor/hvigor-config.json5 create mode 100644 CameraKit/RotationDisplayCamera/hvigorfile.ts create mode 100644 CameraKit/RotationDisplayCamera/oh-package-lock.json5 create mode 100644 CameraKit/RotationDisplayCamera/oh-package.json5 create mode 100644 CameraKit/RotationDisplayCamera/ohosTest.md create mode 100644 CameraKit/RotationDisplayCamera/screenshots/devices/camera.png diff --git a/CameraKit/DualPreview/.gitignore b/CameraKit/DualPreview/.gitignore new file mode 100644 index 000000000..d2ff20141 --- /dev/null +++ b/CameraKit/DualPreview/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/CameraKit/DualPreview/AppScope/app.json5 b/CameraKit/DualPreview/AppScope/app.json5 new file mode 100644 index 000000000..4fb9f79d7 --- /dev/null +++ b/CameraKit/DualPreview/AppScope/app.json5 @@ -0,0 +1,10 @@ +{ + "app": { + "bundleName": "com.example.CameraKit", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:layered_image", + "label": "$string:app_name" + } +} diff --git a/CameraKit/DualPreview/AppScope/resources/base/element/string.json b/CameraKit/DualPreview/AppScope/resources/base/element/string.json new file mode 100644 index 000000000..dcff7a161 --- /dev/null +++ b/CameraKit/DualPreview/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "CustomCamera" + } + ] +} diff --git a/CameraKit/DualPreview/AppScope/resources/base/media/background.png b/CameraKit/DualPreview/AppScope/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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 { + if (err && err.message) { + Logger.error(TAG, 'cameraStatus with errorMessage = ' + err.message); + return; + } + Logger.info(TAG, `cameraStatusInfo: camera is ${statusInfo.camera.cameraId}, status is ${statusInfo.status}`); + }); + } + + getCameraManager() { + return this.cameraManager; + } + + async start( + xComponentSurfaceId: string, + cameraPosition: camera.CameraPosition, + sceneMode: camera.SceneMode, + getProfile: (cameraOrientation: number, picFormat: camera.CameraFormat) => camera.Profile + ) { + try { + const device = this.getCameraDevice(cameraPosition); + if (!device) { + return; + } + // [Start cameraInput] + this.cameraInput = this.cameraManager.createCameraInput(device); + await this.cameraInput.open(); + // [End cameraInput] + // [Start session] + const session = this.cameraManager.createSession(sceneMode); + session.beginConfig(); + session.addInput(this.cameraInput); + // [StartExclude session] + const config: CreateOutputConfig = { + cameraManager: this.cameraManager, + device, + sceneMode, + profile: getProfile(device.cameraOrientation, camera.CameraFormat.CAMERA_FORMAT_YUV_420_SP), + surfaceId: xComponentSurfaceId + }; + // [EndExclude session] + for (const outputManager of this.outputManagers) { + if (outputManager.isActive) { + const output = await outputManager.createOutput(config); + session.addOutput(output); + } + }; + await session.commitConfig(); + await session.start(); + // [End session] + this.session = session as (camera.PhotoSession | camera.VideoSession); + this.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); + this.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_AUTO); + } catch (e) { + Logger.error(TAG, `Failed to start camera session. Cause ${JSON.stringify(e)}`); + } + } + + async refreshOutput(oldOutput: camera.CameraOutput, newOutput: camera.CameraOutput) { + await this.session?.stop(); + this.session?.beginConfig(); + this.session?.removeOutput(oldOutput); + this.session?.addOutput(newOutput); + await this.session?.commitConfig(); + await this.session?.start(); + } + + // [Start release] + async release() { + await this.session?.stop(); + for (const outputManager of this.outputManagers) { + if (outputManager.isActive) { + await outputManager.release(); + } + }; + await this.cameraInput?.close(); + await this.session?.release(); + } + // [End release] + + // [Start getCameraDevice] + getCameraDevice(cameraPosition: camera.CameraPosition) { + const cameraDevices = this.cameraManager.getSupportedCameras(); + const device = cameraDevices?.find(device => device.cameraPosition === cameraPosition) || cameraDevices[0]; + if (!device) { + Logger.error(TAG, `Failed to get camera device. cameraPosition: ${cameraPosition}}`); + } + return device; + } + // [End getCameraDevice] + + // [Start getZoomRange] + getZoomRange() { + return this.session!.getZoomRatioRange(); + } + // [End getZoomRange] + + // [Start setFocusMode] + setFocusMode(focusMode: camera.FocusMode) { + try { + const isSupported = this.session?.isFocusModeSupported(focusMode); + if (!isSupported) { + Logger.error(TAG, `setFocusMode error: focus mode ${focusMode} is not supported`); + return; + } + this.session?.setFocusMode(focusMode); + } catch(e) { + Logger.error(TAG, 'setFocusMode error ' + JSON.stringify(e)); + } + } + // [End setFocusMode] + + // [Start setFocusPoint] + setFocusPoint(point: camera.Point) { + try { + this.session?.setFocusPoint(point); + } catch(e) { + Logger.error(TAG, 'setFocusPoint error ' + JSON.stringify(e)); + } + } + // [End setFocusPoint] + + // [Start setExposureMode] + setExposureMode(exposureMode: camera.ExposureMode) { + try { + const isSupported = this.session?.isExposureModeSupported(exposureMode); + if (!isSupported) { + Logger.error(TAG, `setExposureMode error: focus mode ${exposureMode} is not supported`); + return; + } + this.session?.setExposureMode(exposureMode); + } catch(e) { + Logger.error(TAG, 'setExposureMode error ' + JSON.stringify(e)); + } + } + // [End setExposureMode] + + // [Start setMeteringPoint] + setMeteringPoint(point: camera.Point) { + try { + this.session?.setMeteringPoint(point); + } catch(e) { + Logger.error(TAG, 'setMeteringPoint error ' + JSON.stringify(e)); + } + } + // [End setMeteringPoint] + + setZoomRatio(zoom: number) { + try { + this.session?.setZoomRatio(zoom); + } catch(e) { + Logger.error(TAG, 'setZoomRatio error ' + JSON.stringify(e)); + } + } + + // [Start setSmoothZoom] + setSmoothZoom(zoom: number) { + try { + this.session?.setSmoothZoom(zoom); + } catch(e) { + Logger.error(TAG, 'setSmoothZoom error ' + JSON.stringify(e)); + } + } + // [End setSmoothZoom] + + // [Start setFlashMode] + setFlashMode(flashMode: camera.FlashMode) { + try { + const isSupported = this.session?.isFlashModeSupported(flashMode); + if (!isSupported) { + Logger.error(TAG, `setFlashMode error: flash mode ${flashMode} is not supported`); + return; + } + this.session?.setFlashMode(flashMode); + } catch(e) { + Logger.error(TAG, 'setFlashMode error ' + JSON.stringify(e)); + } + } + // [End setFlashMode] + + setVideoStabilizationMode(stabilizationMode: camera.VideoStabilizationMode) { + try { + const session = this.session as camera.VideoSession; + const isSupported: boolean = session.isVideoStabilizationModeSupported(stabilizationMode); + if (isSupported) { + session.setVideoStabilizationMode(stabilizationMode); + } else { + Logger.error(TAG, 'stabilizationMode is not supported: ' + JSON.stringify(stabilizationMode)); + } + } catch (e) { + Logger.error(TAG, 'setVideoStabilizationMode error ' + JSON.stringify(e)); + } + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets new file mode 100644 index 000000000..83b5a5537 --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { image } from '@kit.ImageKit'; +import { camera } from '@kit.CameraKit'; +import { display } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG = 'ImageReceiverManager'; + +export class ImageReceiverManager implements OutputManager { + output?: camera.PreviewOutput; + isActive: boolean = true; + callback: (px: PixelMap) => void; + private position: camera.CameraPosition = camera.CameraPosition.CAMERA_POSITION_BACK; + + constructor(cb: (px: PixelMap) => void) { + this.callback = cb; + } + + async createOutput(config: CreateOutputConfig) { + const cameraOutputCap = config.cameraManager.getSupportedOutputCapability(config.device, config.sceneMode); + const displayRatio = config.profile.size.width / config.profile.size.height; + const profileWidth = config.profile.size.width; + const previewProfile = cameraOutputCap.previewProfiles + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return pf.format === config.profile.format + && Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE; + }); + if (!previewProfile) { + Logger.error(TAG, 'Failed to get preview profile'); + return; + } + const surfaceId = await this.init(config.profile.size); + this.output = config.cameraManager.createPreviewOutput(previewProfile, surfaceId); + this.position = config.device.cameraPosition; + return this.output; + } + + async release() { + await this.output?.release(); + this.output = undefined; + } + + // [Start init] + async init(size: Size, format = image.ImageFormat.JPEG, capacity = 8) { + const receiver = image.createImageReceiver(size, format, capacity); + const surfaceId = await receiver.getReceivingSurfaceId(); + this.onImageArrival(receiver); + return surfaceId; + } + // [End init] + + // [Start getPixelMap] + async getPixelMap(imgComponent: image.Component, width: number, height: number, stride: number) { + if (stride === width) { + return await image.createPixelMap(imgComponent.byteBuffer, { + size: { height: height, width: width }, + srcPixelFormat: image.PixelMapFormat.NV21, + }); + } + const dstBufferSize = width * height * 1.5; + const dstArr = new Uint8Array(dstBufferSize); + for (let j = 0; j < height * 1.5; j++) { + const srcBuf = new Uint8Array(imgComponent.byteBuffer, j * stride, width); + dstArr.set(srcBuf, j * width); + } + return await image.createPixelMap(dstArr.buffer, { + size: { height: height, width: width }, + srcPixelFormat: image.PixelMapFormat.NV21, + }); + } + // [End getPixelMap] + + // [Start onImageArrival] + onImageArrival(receiver: image.ImageReceiver): void { + receiver.on('imageArrival', () => { + Logger.info(TAG, 'image arrival'); + receiver.readNextImage((err: BusinessError, nextImage: image.Image) => { + if (err || nextImage === undefined) { + Logger.error(TAG, 'readNextImage failed'); + return; + } + // [Start release] + // [Start nextImage] + nextImage.getComponent(image.ComponentType.JPEG, async (err: BusinessError, imgComponent: image.Component) => { + // [StartExclude release] + if (err || imgComponent === undefined) { + Logger.error(TAG, 'getComponent failed'); + } + if (imgComponent.byteBuffer) { + // [StartExclude onImageArrival] + const width = nextImage.size.width; + const height = nextImage.size.height; + const stride = imgComponent.rowStride; + Logger.info(TAG, `getComponent with width:${width} height:${height} stride:${stride}`); + const pixelMap = await this.getPixelMap(imgComponent, width, height, stride); + const displayRotation = display.getDefaultDisplaySync().rotation * camera.ImageRotation.ROTATION_90; + const rotation = this.output!.getPreviewRotation(displayRotation); + if (this.position === camera.CameraPosition.CAMERA_POSITION_FRONT) { + if (displayRotation === 90 || displayRotation === 270) { + await pixelMap.rotate((rotation + 180) % 360); + } else { + await pixelMap.rotate(rotation); + } + await pixelMap.flip(true, false); + } else { + await pixelMap.rotate(rotation); + } + this.callback(pixelMap); + // [EndExclude onImageArrival] + } else { + Logger.error(TAG, 'byteBuffer is null'); + } + // [EndExclude release] + // [StartExclude nextImage] + // [StartExclude onImageArrival] + nextImage.release().then(() => {Logger.info(TAG, 'image release done');}).catch((error: BusinessError) => { + Logger.error(TAG, `Release failed! Code ${error.code},message is ${error.message}`); + }); + Logger.info(TAG, 'image process done'); + // [EndExclude onImageArrival] + // [EndExclude nextImage] + }); + // [End release] + // [End nextImage] + }); + }); + } + // [End onImageArrival] +} diff --git a/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/OutputManager.ets b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/OutputManager.ets new file mode 100644 index 000000000..c476ae134 --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/OutputManager.ets @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; + +export interface CreateOutputConfig { + cameraManager: camera.CameraManager; + device: camera.CameraDevice; + profile: camera.Profile; + sceneMode?: camera.SceneMode; + surfaceId?: string; +} + +// [Start OutputManager] +export default interface OutputManager { + output?: camera.CameraOutput; + isActive: boolean; + createOutput: (config: CreateOutputConfig) => Promise; + release: () => Promise; +} +// [End OutputManager] \ No newline at end of file diff --git a/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PhotoManager.ets b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PhotoManager.ets new file mode 100644 index 000000000..88401e672 --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PhotoManager.ets @@ -0,0 +1,396 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { sensor } from '@kit.SensorServiceKit'; +import { Decimal } from '@kit.ArkTS'; +import { image } from '@kit.ImageKit'; +import { colorSpaceManager } from '@kit.ArkGraphics2D'; +import { geoLocationManager } from '@kit.LocationKit'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG_LOG = 'PhotoManager'; + +export class PhotoManager implements OutputManager { + output?: camera.PhotoOutput; + isActive: boolean = true; + context: Context; + isSingle: boolean = false; + location: geoLocationManager.Location | null = null; + private callback: (pixelMap: image.PixelMap, url: string) => void = () => { + }; + + constructor(context: Context, isActive = true, isSingle: boolean) { + this.context = context; + this.isActive = isActive; + this.isSingle = isSingle; + } + + setIsActive(isActive: boolean) { + this.isActive = isActive; + } + + setCallback(callback: (pixelMap: image.PixelMap, url: string) => void) { + this.callback = callback; + } + + async createOutput(config: CreateOutputConfig) { + let cameraPhotoOutput: camera.PhotoOutput | undefined = undefined; + cameraPhotoOutput = this.createPhotoOutput(config.cameraManager, config.device, config.profile); + if (cameraPhotoOutput) { + this.output = cameraPhotoOutput; + this.setPhotoOutputCallback(this.isSingle); + } + return cameraPhotoOutput; + } + + // [Start create_photo_output] + public createPhotoOutput(cameraManager: camera.CameraManager, cameraDevice: camera.CameraDevice, + profile: camera.Profile) { + let cameraPhotoOutput: camera.PhotoOutput | undefined = undefined; + const cameraOutputCapability = + cameraManager.getSupportedOutputCapability(cameraDevice, camera.SceneMode.NORMAL_PHOTO); + let photoProfilesArray: camera.Profile[] | undefined = cameraOutputCapability?.photoProfiles; + if (photoProfilesArray?.length) { + try { + const displayRatio = profile.size.width / profile.size.height; + const profileWidth = profile.size.width; + const PhotoProfile = photoProfilesArray + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE && + pf.format === camera.CameraFormat.CAMERA_FORMAT_JPEG; + }); + if (!PhotoProfile) { + Logger.error(TAG_LOG, 'Failed to get photo profile'); + return; + } + cameraPhotoOutput = cameraManager.createPhotoOutput(PhotoProfile); + } catch (error) { + Logger.error(TAG_LOG, `Failed to createPhotoOutput. error: ${JSON.stringify(error)}`); + } + } + this.output = cameraPhotoOutput; + return cameraPhotoOutput; + } + + // [End create_photo_output] + + // [Start set_photo_cb_double] + async mediaLibSavePhoto(photoAsset: photoAccessHelper.PhotoAsset, + phAccessHelper: photoAccessHelper.PhotoAccessHelper): Promise { + try { + let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = + new photoAccessHelper.MediaAssetChangeRequest(photoAsset); + assetChangeRequest.saveCameraPhoto(); + await phAccessHelper.applyChanges(assetChangeRequest); + phAccessHelper.release(); + } catch (error) { + Logger.error(TAG_LOG, `apply saveCameraPhoto failed with error: ${error.code}, ${error.message}`); + } + } + + async mediaLibRequestBuffer(photoAsset: photoAccessHelper.PhotoAsset, context: Context, + callback: (pixelMap: image.PixelMap, url: string) => void) { + class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler { + onDataPrepared(data: ArrayBuffer) { + if (data === undefined) { + Logger.error(TAG_LOG, 'Error occurred when preparing data'); + return; + } + let imageSource = image.createImageSource(data); + imageSource.createPixelMap().then((pixelMap: image.PixelMap) => { + callback(pixelMap, photoAsset.uri); + }).catch((err: BusinessError) => { + Logger.error(TAG_LOG, `createPixelMap err:${err.code}`); + }) + } + } + + let requestOptions: photoAccessHelper.RequestOptions = { + deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, + } + const handler = new MediaDataHandler(); + await photoAccessHelper.MediaAssetManager.requestImageData(context, photoAsset, requestOptions, handler); + } + + public setPhotoOutputCbDouble(cameraPhotoOutput: camera.PhotoOutput) { + cameraPhotoOutput.on('photoAssetAvailable', + async (_err: BusinessError, photoAsset: photoAccessHelper.PhotoAsset): Promise => { + let accessHelper: photoAccessHelper.PhotoAccessHelper = + photoAccessHelper.getPhotoAccessHelper(this.context); + this.mediaLibSavePhoto(photoAsset, accessHelper); + this.mediaLibRequestBuffer(photoAsset, this.context, this.callback); + }); + } + + // [End set_photo_cb_double] + + // [Start set_photo_cb_single] + setPhotoOutputCbSingle(photoOutput: camera.PhotoOutput, context: Context) { + photoOutput.on('photoAvailable', (errCode: BusinessError, photo: camera.Photo): void => { + if (errCode || photo === undefined) { + Logger.error(TAG_LOG, 'getPhoto failed'); + return; + } + this.mediaLibSavePhotoSingle(context, photo.main) + }); + } + // [End set_photo_cb_single] + + // [Start save_photo_single] + mediaLibSavePhotoSingle(context: Context, imageObj: image.Image) { + imageObj.getComponent(image.ComponentType.JPEG, async (errCode: BusinessError, component: image.Component) => { + if (errCode || component === undefined) { + Logger.error(TAG_LOG, 'getComponent failed'); + return; + } + const buffer: ArrayBuffer = component.byteBuffer; + if (!buffer) { + Logger.error(TAG_LOG, 'byteBuffer is null'); + return; + } + let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; + let extension: string = 'jpg'; + let options: photoAccessHelper.CreateOptions = { + title: 'testPhoto' + } + let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = + photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension, options); + assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, buffer) + assetChangeRequest.saveCameraPhoto(); + let accessHelper: photoAccessHelper.PhotoAccessHelper = + photoAccessHelper.getPhotoAccessHelper(context); + await accessHelper.applyChanges(assetChangeRequest); + let imageSource = image.createImageSource(buffer); + let pixelmap = imageSource.createPixelMapSync(); + this.callback(pixelmap, assetChangeRequest.getAsset().uri); + accessHelper.release(); + imageObj.release(); + }); + } + // [End save_photo_single] + + setPhotoOutputCallback(isSingle: boolean) { + if (!this.output) { + return; + } + if (isSingle) { + this.output?.off('photoAssetAvailable'); + this.setPhotoOutputCbSingle(this.output, this.context); + } else { + this.output?.off('photoAvailable'); + this.setPhotoOutputCbDouble(this.output); + } + } + + preparePhoto(session: camera.Session, zoomRatio?: number, flashMode?: camera.FlashMode, + focusMode?: camera.FocusMode) { + const photoSession = session as camera.PhotoSession; + this.setPhotoFlash(photoSession, flashMode); + this.setPhotoFocus(photoSession, focusMode); + this.setPhotoZoomRatio(photoSession, zoomRatio || 0); + } + + // [Start set_color_space] + setColorSpaceBeforeCommitConfig(session: camera.PhotoSession, isHdr: boolean): void { + let colorSpace: colorSpaceManager.ColorSpace = + isHdr ? colorSpaceManager.ColorSpace.DISPLAY_P3 : colorSpaceManager.ColorSpace.SRGB; + let colorSpaces: Array = []; + try { + colorSpaces = session.getSupportedColorSpaces(); + } catch (error) { + Logger.error(TAG_LOG, `The getSupportedColorSpaces call failed. error code: ${error.code}`); + } + if (!colorSpaces.includes(colorSpace)) { + Logger.info(TAG_LOG, `colorSpace: ${colorSpace} is not support`); + return; + } + Logger.info(TAG_LOG, `setColorSpace: ${colorSpace}`); + session.setColorSpace(colorSpace); + try { + let activeColorSpace: colorSpaceManager.ColorSpace = session.getActiveColorSpace(); + Logger.info(TAG_LOG, `activeColorSpace: ${activeColorSpace}`); + } catch (error) { + Logger.error(TAG_LOG, `getActiveColorSpace Faild: ${error.message}`); + } + } + // [End set_color_space] + + public checkFlash(photoSession: camera.PhotoSession) { + let flashModeStatus: boolean = false; + if (photoSession.hasFlash()) { + flashModeStatus = photoSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); + } + return flashModeStatus; + } + + public setPhotoFlash(photoSession: camera.PhotoSession, flashMode?: camera.FlashMode) { + try { + if (this.checkFlash(photoSession)) { + photoSession.setFlashMode(flashMode || camera.FlashMode.FLASH_MODE_CLOSE); + } + } catch (error) { + Logger.error(TAG_LOG, `Failed to hasFlash. error: ${JSON.stringify(error)}`); + } + } + + public setPhotoFocus(photoSession: camera.PhotoSession, focusMode?: camera.FocusMode) { + const defaultMode = camera.FocusMode.FOCUS_MODE_CONTINUOUS_AUTO; + try { + let focusModeStatus: boolean = photoSession.isFocusModeSupported(focusMode || defaultMode); + if (focusModeStatus) { + photoSession.setFocusMode(focusMode || defaultMode); + } + } catch (error) { + Logger.error(TAG_LOG, + `Failed to check whether the focus mode is supported. error: ${JSON.stringify(error)}`); + } + } + + public setFocusPoint(photoSession: camera.PhotoSession, focusPoint: camera.Point): void { + try { + photoSession.setFocusPoint(focusPoint); + } catch (error) { + Logger.error(TAG_LOG, `The setFocusPoint call failed. error code: ${error.code}`); + } + } + + public setPhotoZoomRatio(photoSession: camera.PhotoSession, zoomRatio?: number) { + let photoZoomRatio = 0; + if (!zoomRatio) { + try { + let zoomRatioRange: number[] = photoSession.getZoomRatioRange(); + if (zoomRatioRange?.length) { + photoZoomRatio = zoomRatioRange[0]; + } + } catch (error) { + Logger.error(TAG_LOG, `Failed to get the zoom ratio range. error: ${JSON.stringify(error)}`); + } + } + photoSession.setZoomRatio(zoomRatio || photoZoomRatio); + } + + getSupportedColorSpaces(session: camera.PhotoSession): Array { + let colorSpaces: Array = []; + try { + colorSpaces = session.getSupportedColorSpaces(); + } catch (error) { + Logger.error(TAG_LOG,`The getSupportedColorSpaces call failed. error code: ${error.code}`); + } + return colorSpaces; + } + + // [Start get_photo_rotation] + getPhotoRotation(photoOutput: camera.PhotoOutput, deviceDegree: number): camera.ImageRotation { + let photoRotation: camera.ImageRotation = camera.ImageRotation.ROTATION_0; + try { + photoRotation = photoOutput.getPhotoRotation(deviceDegree); + } catch (error) { + Logger.error(TAG_LOG, `The photoOutput.getPhotoRotation call failed. error code: ${error.code}`); + } + return photoRotation; + } + + // [End get_photo_rotation] + + // [Start capture_photo] + public async capture(isFront: boolean) { + const degree = await this.getPhotoDegree(); + const rotation = this.getPhotoRotation(this.output!, degree); + let settings: camera.PhotoCaptureSetting = { + quality: camera.QualityLevel.QUALITY_LEVEL_HIGH, + rotation, + mirror: isFront + }; + this.output?.capture(settings, (err: BusinessError) => { + if (err) { + Logger.error(TAG_LOG, `Failed to capture the photo. error: ${JSON.stringify(err)}`); + return; + } + Logger.info(TAG_LOG, 'Callback invoked to indicate the photo capture request success.'); + }); + } + // [End capture_photo] + + private calculateDeviceDegree(x: number, y: number, z: number): number { + let deviceDegree: number = 0; + // Determine if the device is approaching a vertical position (perpendicular to the ground) + if ((x * x + y * y) * 3 < z * z) { + return deviceDegree; + } else { + // Calculate the inverse tangent value + let sd: Decimal = Decimal.atan2(y, -x) + // Convert radian values to angle values; + let sc: Decimal = Decimal.round(Number(sd) / Math.PI * 180); + // Adjust angle to be relative to vertical orientation + deviceDegree = 90 - Number(sc); + // Normalize angle to 0-360 degrees range + deviceDegree = deviceDegree >= 0 ? deviceDegree % 360 : deviceDegree % 360 + 360; + } + return deviceDegree; + } + + private getPhotoDegree() { + const promise: Promise = new Promise(resolve => { + sensor.once(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { + let degree = this.calculateDeviceDegree(data.x, data.y, data.z); + resolve(degree); + }); + }) + return promise; + } + + // [Start is_moving_photo] + public isMovingPhotoSupported(photoOutput: camera.PhotoOutput): boolean { + let isSupported: boolean = false; + try { + isSupported = photoOutput.isMovingPhotoSupported(); + } catch (error) { + Logger.error(TAG_LOG, `The isMovingPhotoSupported call failed. error code: ${error.code}`); + } + return isSupported; + } + + // [End is_moving_photo] + + // [Start enable_moving_photo] + public enableMovingPhoto(enabled: boolean): void { + try { + this.output?.enableMovingPhoto(enabled); + } catch (error) { + Logger.error(TAG_LOG, `The enableMovingPhoto call failed. error code: ${error.code}`); + } + } + + // [End enable_moving_photo] + + // [Start photo_release] + async release() { + await this.output?.release(); + if (this.isSingle) { + this.output?.off('photoAvailable'); + } else { + this.output?.off('photoAssetAvailable'); + } + this.output = undefined; + } + // [End photo_release] +} diff --git a/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PreviewManager.ets b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PreviewManager.ets new file mode 100644 index 000000000..bcdb1db5c --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/PreviewManager.ets @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG_LOG = 'PreviewManager' + +export class PreviewManager implements OutputManager { + output?: camera.PreviewOutput; + isActive: boolean = true; + onPreviewStart: () => void = () => {}; + + constructor(onPreviewStart: () => void) { + this.onPreviewStart = onPreviewStart; + } + + // [Start createOutput] + async createOutput(config: CreateOutputConfig) { + const cameraOutputCap = config.cameraManager.getSupportedOutputCapability(config.device, config.sceneMode); + const displayRatio = config.profile.size.width / config.profile.size.height; + const profileWidth = config.profile.size.width; + const previewProfile = cameraOutputCap.previewProfiles + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return pf.format === config.profile.format + && Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE; + }); + if (!previewProfile) { + Logger.error(TAG_LOG, 'Failed to get preview profile'); + return; + } + this.output = config.cameraManager.createPreviewOutput(previewProfile, config.surfaceId); + this.addOutputListener(this.output); + return this.output; + } + // [End createOutput] + + addOutputListener(output: camera.PreviewOutput) { + this.addFrameStartEventListener(output); + this.addFrameEndEventListener(output); + } + + // [Start onFrame] + addFrameStartEventListener(output: camera.PreviewOutput) { + output.on('frameStart', (err: BusinessError) => { + if (err !== undefined && err.code !== 0) { + Logger.error(TAG_LOG, `FrameStart callback Error, errorMessage: ${err.message}`); + return; + } + Logger.info(TAG_LOG, 'Preview frame started'); + this.onPreviewStart(); + }); + } + + addFrameEndEventListener(output: camera.PreviewOutput) { + output.on('frameEnd', (err: BusinessError) => { + if (err !== undefined && err.code !== 0) { + Logger.error(TAG_LOG, `FrameStart callback Error, errorMessage: ${err.message}`); + return; + } + Logger.info(TAG_LOG, 'Preview frame end'); + }); + } + // [End onFrame] + + // [Start release] + async release() { + await this.output?.release(); + this.output = undefined; + } + // [End release] + + // [Start getSupportedFrameRates] + getSupportedFrameRates() { + return this.output?.getSupportedFrameRates(); + } + // [End getSupportedFrameRates] + + // [Start setFrameRate] + setFrameRate(minFps: number, maxFps: number) { + try { + this.output?.setFrameRate(minFps, maxFps); + } catch(e) { + Logger.error(TAG_LOG, 'setFrameRate error ' + JSON.stringify(e)); + } + } + // [End setFrameRate] +} diff --git a/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/VideoManager.ets b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/VideoManager.ets new file mode 100644 index 000000000..c6d3794c7 --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/cameramanagers/VideoManager.ets @@ -0,0 +1,419 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { media } from '@kit.MediaKit'; +import { camera } from '@kit.CameraKit'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { fileIo } from '@kit.CoreFileKit'; +import { sensor } from '@kit.SensorServiceKit'; +import { Decimal } from '@kit.ArkTS'; +import { image } from '@kit.ImageKit'; +import { colorSpaceManager } from '@kit.ArkGraphics2D'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG_LOG = 'video'; + +enum QualityLevel { + NORMAL, + HIGHER +} + +export enum AVRecorderState { + IDLE = 'idle', + PREPARED = 'prepared', + STARTED = 'started', + PAUSED = 'paused', + STOPPED = 'stopped', + RELEASED = 'released', + ERROR = 'error' +} + +export class VideoManager implements OutputManager { + private avRecorder: media.AVRecorder | undefined = undefined; + private avConfig: media.AVRecorderConfig | undefined = undefined; + private avProfile: media.AVRecorderProfile | undefined = undefined; + private videoProfile: camera.VideoProfile | undefined = undefined; + private context: Context | undefined = undefined; + private cameraPosition: number = 0; + private qualityLevel: QualityLevel = QualityLevel.NORMAL; + output: camera.VideoOutput | undefined = undefined; + private videoUri: string = ''; + private file: fileIo.File | undefined = undefined; + state: media.AVRecorderState = AVRecorderState.IDLE; + isActive: boolean = false; + private callback: (pixelMap: image.PixelMap, url: string) => void = () => { + }; + + constructor(context: Context) { + this.context = context; + } + + setIsActive(isActive: boolean) { + this.isActive = isActive; + } + + async createOutput(config: CreateOutputConfig) { + try { + this.avRecorder = await media.createAVRecorder(); + this.avRecorder.on('stateChange', state => { + this.state = state; + Logger.info(TAG_LOG, 'on avRecorder state change: ', state) + }); + } catch (error) { + Logger.info(TAG_LOG, 'createAVRecorder call failed. error code: %{public}s', error.code); + } + if (this.avRecorder === undefined || this.avRecorder === null) { + return; + } + this.setVideoProfile(config.cameraManager, config.profile, config.device); + // this.setVideoProfile(config.cameraManager, config.profile, config.device); + await this.setAVConfig(); + await this.prepare(); + await this.createVideoOutput(config.cameraManager); + return this.output; + } + + async prepare() { + try { + if (this.avRecorder?.state === AVRecorderState.IDLE && this.avConfig) { + await this.avRecorder.prepare(this.avConfig); + Logger.info(TAG_LOG, 'Succeeded in preparing'); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to prepare and catch error is ${error.message}`); + } + } + + isSupportMirror() { + let isSupported: boolean | undefined = this.output?.isMirrorSupported(); + return isSupported; + } + + // [Start start_video] + async start(isFront: boolean) { + try { + if (this.avRecorder?.state === AVRecorderState.PREPARED) { + if (this.isSupportMirror() && isFront) { + this.output?.enableMirror(true) + } + // [StartExclude start_video] + await this.avRecorder.updateRotation(this.getVideoRotation(await this.getGravity())); + // [EndExclude start_video] + await this.output?.start(); + await this.avRecorder?.start(); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to start and catch error is ${error.message}`); + } + } + // [End start_video] + + // [Start stop_video] + async stop() { + try { + if (this.avRecorder?.state === AVRecorderState.STARTED + || this.avRecorder?.state === AVRecorderState.PAUSED) { + await this.avRecorder.stop(); + await this.output?.stop(); + const thumbnail = await this.getVideoThumbnail(); + if (thumbnail) { + this.callback(thumbnail, this.videoUri); + } + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to stop and catch error is ${error.message}`); + } + } + // [End stop_video] + + // [Start pause_video] + async pause() { + try { + if (this.avRecorder?.state === AVRecorderState.STARTED) { + await this.avRecorder.pause(); + await this.output?.stop(); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to pause and catch error is ${error.message}`); + } + } + // [End pause_video] + + // [Start resume_video] + async resume() { + try { + if (this.avRecorder?.state === AVRecorderState.PAUSED) { + await this.output?.start(); + await this.avRecorder.resume(); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to resume and catch error is ${error.message}`); + } + } + // [End resume_video] + + // [Start release_video] + async release() { + await this.avRecorder?.release(); + await this.output?.release(); + this.file && await fileIo.close(this.file.fd); + this.avRecorder?.off('stateChange'); + this.avRecorder = undefined; + this.output = undefined; + this.file = undefined; + } + // [End release_video] + + getCurrentOutput() { + return this.output; + } + + setVideoCallback(callback: (pixelMap: image.PixelMap, url: string) => void) { + this.callback = callback; + } + + // [Start create_video_output] + async createVideoOutput(cameraManager: camera.CameraManager) { + if (!this.avRecorder || this.avRecorder.state !== AVRecorderState.PREPARED) { + return; + } + try { + // [Start get_surface_id] + let videoSurfaceId = await this.avRecorder.getInputSurface(); + // [End get_surface_id] + this.output = cameraManager.createVideoOutput(this.videoProfile, videoSurfaceId); + } catch (error) { + Logger.error(TAG_LOG, + `Failed to create the output instance. error code: ${error.code}`); + } + } + + setVideoProfile(cameraManager: camera.CameraManager, targetProfile: camera.Profile, + device: camera.CameraDevice) { + this.cameraPosition = device.cameraPosition; + let cameraOutputCap: camera.CameraOutputCapability | undefined = + cameraManager.getSupportedOutputCapability(device, + camera.SceneMode.NORMAL_VIDEO); + let videoProfilesArray: camera.VideoProfile[] | undefined = cameraOutputCap?.videoProfiles; + if (videoProfilesArray?.length) { + try { + const displayRatio = targetProfile.size.width / targetProfile.size.height; + const profileWidth = targetProfile.size.width; + const videoProfile = videoProfilesArray + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE && + pf.format === camera.CameraFormat.CAMERA_FORMAT_YUV_420_SP; + }); + if (!videoProfile) { + Logger.error(TAG_LOG, 'Failed to get video profile'); + return; + } + this.videoProfile = videoProfile; + } catch (error) { + Logger.error(TAG_LOG, `Failed to createPhotoOutput. error: ${JSON.stringify(error)}`); + } + } + } + // [End create_video_output] + + getCameraImageRotation(): camera.ImageRotation { + return this.cameraPosition === camera.CameraPosition.CAMERA_POSITION_FRONT + ? camera.ImageRotation.ROTATION_270 + : camera.ImageRotation.ROTATION_90 + } + + async setAVConfig() { + // [Start create_file] + let options: photoAccessHelper.CreateOptions = { + title: Date.now().toString() + }; + let accessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(this.context); + this.videoUri = await accessHelper.createAsset(photoAccessHelper.PhotoType.VIDEO, 'mp4', options); + this.file = fileIo.openSync(this.videoUri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + // [End create_file] + + // [Start av_profile] + this.avProfile = { + audioBitrate: 48000, + audioChannels: 2, + audioCodec: media.CodecMimeType.AUDIO_AAC, + audioSampleRate: 48000, + fileFormat: media.ContainerFormatType.CFT_MPEG_4, + videoBitrate: 32000000, + videoCodec: (this.qualityLevel === QualityLevel.HIGHER && this.cameraPosition === 0) ? + media.CodecMimeType.VIDEO_HEVC : media.CodecMimeType.VIDEO_AVC, + videoFrameWidth: this.videoProfile?.size.width, + videoFrameHeight: this.videoProfile?.size.height, + videoFrameRate: this.cameraPosition === 0 ? 60 : 30, + } + // [End av_profile] + + // [Start av_config] + this.avConfig = { + audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_CAMCORDER, + videoSourceType: media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV, + profile: this.avProfile, + url: `fd://${this.file.fd}`, + metadata: { + videoOrientation: this.getCameraImageRotation().toString() + } + } + // [End av_config] + } + + getRealData(data: sensor.GravityResponse): number { + let getDeviceDegree: number = 0; + let x = data.x; + let y = data.y; + let z = data.z; + // Determine if the device is approaching a vertical position (perpendicular to the ground) + if ((x * x + y * y) * 3 < z * z) { + return getDeviceDegree; + } else { + // Calculate the inverse tangent value + let sd: Decimal = Decimal.atan2(y, -x); + // Convert radian values to angle values; + let sc: Decimal = Decimal.round(Number(sd) / 3.141592653589 * 180) + // Adjust angle to be relative to vertical orientation + getDeviceDegree = 90 - Number(sc); + // Normalize angle to 0-360 degrees range + getDeviceDegree = getDeviceDegree >= 0 ? getDeviceDegree % 360 : getDeviceDegree % 360 + 360; + } + return getDeviceDegree; + } + + async getGravity(): Promise { + try { + let isSupportedGravity: boolean = false; + let data = await sensor.getSensorList(); + for (let i = 0; i < data.length; i++) { + if (data[i].sensorId === sensor.SensorId.GRAVITY) { + isSupportedGravity = true; + break; + } + } + if (isSupportedGravity === true) { + const promise: Promise = new Promise((resolve) => { + sensor.once(sensor.SensorId.GRAVITY, (data: sensor.GravityResponse) => { + resolve(this.getRealData(data)); + }); + }) + return promise; + } else { + const promise: Promise = new Promise((resolve) => { + sensor.once(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { + resolve(this.getRealData(data as sensor.GravityResponse)); + }); + }) + return promise; + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to getGravity and catch error is ${error.message}`); + return 0 + } + } + + // [Start get_video_rotation] + getVideoRotation(deviceDegree: number): camera.ImageRotation { + let videoRotation: camera.ImageRotation = this.getCameraImageRotation(); + try { + videoRotation = this.output!.getVideoRotation(deviceDegree); + Logger.info(TAG_LOG, `Video rotation is: ${videoRotation}`); + } catch (error) { + Logger.info(TAG_LOG, `Failed to getVideoRotation and catch error is: ${error.message}`); + } + return videoRotation; + } + // [End get_video_rotation] + + async getVideoThumbnail() { + let pixelMap: image.PixelMap | undefined = undefined; + try { + let avImageGenerator: media.AVImageGenerator = await media.createAVImageGenerator(); + let dataSrc: media.AVFileDescriptor = { + fd: this.file!.fd, + }; + avImageGenerator.fdSrc = dataSrc; + let timeUs = 0; + let queryOption = media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC; + let param: media.PixelMapParams = { + width: 300, + height: 300 + }; + pixelMap = await avImageGenerator.fetchFrameByTime(timeUs, queryOption, param); + avImageGenerator.release(); + } catch (error) { + Logger.info(TAG_LOG, `Failed to getVideoThumbnail and catch error is ${error.message}`); + } + return pixelMap; + } + + isRecording() { + return this.state === AVRecorderState.STARTED || this.state === AVRecorderState.PAUSED; + } + + + // [Start set_video_stabilization] + setVideoStabilizationMode(session: camera.VideoSession): boolean { + let mode: camera.VideoStabilizationMode = camera.VideoStabilizationMode.AUTO; + // Check whether video stabilization is supported + let isSupported: boolean = session.isVideoStabilizationModeSupported(mode); + if (!isSupported) { + Logger.info(TAG_LOG, `videoStabilizationMode: ${mode} is not support`); + return false; + } + Logger.info(TAG_LOG, `setVideoStabilizationMode: ${mode}`); + // Set video stabilization + session.setVideoStabilizationMode(mode); + let activeVideoStabilizationMode = session.getActiveVideoStabilizationMode(); + Logger.info(TAG_LOG, `activeVideoStabilizationMode: ${activeVideoStabilizationMode}`); + return isSupported; + } + // [End set_video_stabilization] + + // [Start set_video_color_space] + getSupportedColorSpaces(session: camera.VideoSession): Array { + let colorSpaces: colorSpaceManager.ColorSpace[] = []; + try { + colorSpaces = session.getSupportedColorSpaces(); + } catch (error) { + Logger.error(TAG_LOG, `The getSupportedColorSpaces call failed. error code: ${error.message}`); + } + return colorSpaces; + } + + setColorSpaceAfterCommitConfig(session: camera.VideoSession, isHdr: boolean): void { + let colorSpace: colorSpaceManager.ColorSpace = + isHdr ? colorSpaceManager.ColorSpace.BT2020_HLG_LIMIT : colorSpaceManager.ColorSpace.BT709_LIMIT; + let colorSpaces: colorSpaceManager.ColorSpace[] = this.getSupportedColorSpaces(session); + if (!colorSpaces.includes(colorSpace)) { + Logger.info(TAG_LOG, `colorSpace: ${colorSpace} is not support`); + return; + } + Logger.info(TAG_LOG, `setColorSpace: ${colorSpace}`); + session.setColorSpace(colorSpace); + try { + let activeColorSpace: colorSpaceManager.ColorSpace = session.getActiveColorSpace(); + Logger.info(TAG_LOG, `activeColorSpace: ${activeColorSpace}`); + } catch (error) { + Logger.error(TAG_LOG, `getActiveColorSpace Faild: ${error.message}`); + } + } + // [Start set_video_color_space] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/camera/src/main/ets/components/GridLine.ets b/CameraKit/DualPreview/camera/src/main/ets/components/GridLine.ets new file mode 100644 index 000000000..dfdc02e40 --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/components/GridLine.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Component +export struct GridLine { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @Prop cols: number = 3; + @Prop rows: number = 3; + @Prop strokeStyle: string |number |CanvasGradient | CanvasPattern = Color.White; + @Prop lineWidth: number = 1; + + // [Start draw] + draw() { + const ctx = this.context; + ctx.strokeStyle = this.strokeStyle; + ctx.lineWidth = this.lineWidth; + const height = this.context.height; + const width = this.context.width; + // horizontal + for (let i = 1; i < this.cols; i++) { + const x = (width / this.cols) * i; + ctx.beginPath(); + ctx.moveTo(x, 0); + ctx.lineTo(x, height); + ctx.stroke(); + } + // vertical + for (let i = 1; i < this.rows; i++) { + const y = (height / this.rows) * i; + ctx.beginPath(); + ctx.moveTo(0, y); + ctx.lineTo(width, y); + ctx.stroke(); + } + } + + build() { + Canvas(this.context) + .width('100%') + .height('100%') + .hitTestBehavior(HitTestMode.Transparent) + .onReady(() => this.draw()) + } + // [End draw] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/camera/src/main/ets/components/LevelIndicator.ets b/CameraKit/DualPreview/camera/src/main/ets/components/LevelIndicator.ets new file mode 100644 index 000000000..b3e6ac57d --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/components/LevelIndicator.ets @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { curves, display } from '@kit.ArkUI'; +import { sensor } from '@kit.SensorServiceKit'; + +const ANGLE_DIFFERENCE: number = 3; + +// [Start LevelIndicator] +@Component +export struct LevelIndicator { + @Prop acc: sensor.AccelerometerResponse; + + getRotate() { + const rotation = display.getDefaultDisplaySync().rotation * 90; + if (rotation === 90 || rotation === 270) { + return -Math.atan2(-this.acc.y, this.acc.x) * (180 / Math.PI); + } + return -Math.atan2(-this.acc.x, this.acc.y) * (180 / Math.PI); + } + + isAlign() { + return Math.abs(this.getRotate()) - 0 <= ANGLE_DIFFERENCE + || Math.abs(Math.abs(this.getRotate()) - 90) <= ANGLE_DIFFERENCE; + } + + build() { + Stack({ alignContent: Alignment.Center }) { + Line({ + width: 200, + height: 1 + }) + // [StartExclude LevelIndicator] + .stroke(Color.White) + .endPoint([200, 0]) + // [EndExclude LevelIndicator] + .strokeDashArray([3, this.isAlign() ? 0 : 3]) + .opacity(this.isAlign() ? 1 : 0.5) + .rotate({ angle: this.getRotate(), centerX: '50%', centerY: '50%' }) + .animation({ + curve: curves.springMotion(0.6, 0.8), + iterations: 1, + playMode: PlayMode.Normal + }) + Circle() + // [StartExclude LevelIndicator] + .width(48) + .height(48) + .stroke(Color.White) + .fill(Color.Transparent) + // [EndExclude LevelIndicator] + .opacity(this.isAlign() ? 1 : 0.5) + } + // [StartExclude LevelIndicator] + .width('100%') + .height('100%') + // [EndExclude LevelIndicator] + .hitTestBehavior(HitTestMode.Transparent) + } +} +// [End LevelIndicator] diff --git a/CameraKit/DualPreview/camera/src/main/ets/constants/CameraConstants.ets b/CameraKit/DualPreview/camera/src/main/ets/constants/CameraConstants.ets new file mode 100644 index 000000000..780f111cd --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/ets/constants/CameraConstants.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class CameraConstant { + static readonly PROFILE_DIFFERENCE = 1e-10; +} + +export default CameraConstant; \ No newline at end of file diff --git a/CameraKit/DualPreview/camera/src/main/module.json5 b/CameraKit/DualPreview/camera/src/main/module.json5 new file mode 100644 index 000000000..24f5f42e9 --- /dev/null +++ b/CameraKit/DualPreview/camera/src/main/module.json5 @@ -0,0 +1,10 @@ +{ + "module": { + "name": "camera", + "type": "har", + "deviceTypes": [ + "phone", + "tablet" + ] + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/commons/.gitignore b/CameraKit/DualPreview/commons/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/CameraKit/DualPreview/commons/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/CameraKit/DualPreview/commons/BuildProfile.ets b/CameraKit/DualPreview/commons/BuildProfile.ets new file mode 100644 index 000000000..3a501e5dd --- /dev/null +++ b/CameraKit/DualPreview/commons/BuildProfile.ets @@ -0,0 +1,17 @@ +/** + * Use these variables when you tailor your ArkTS code. They must be of the const type. + */ +export const HAR_VERSION = '1.0.0'; +export const BUILD_MODE_NAME = 'debug'; +export const DEBUG = true; +export const TARGET_NAME = 'default'; + +/** + * BuildProfile Class is used only for compatibility purposes. + */ +export default class BuildProfile { + static readonly HAR_VERSION = HAR_VERSION; + static readonly BUILD_MODE_NAME = BUILD_MODE_NAME; + static readonly DEBUG = DEBUG; + static readonly TARGET_NAME = TARGET_NAME; +} \ No newline at end of file diff --git a/CameraKit/DualPreview/commons/Index.ets b/CameraKit/DualPreview/commons/Index.ets new file mode 100644 index 000000000..621cafbe0 --- /dev/null +++ b/CameraKit/DualPreview/commons/Index.ets @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { Logger } from './src/main/ets/utils/Logger'; diff --git a/CameraKit/DualPreview/commons/build-profile.json5 b/CameraKit/DualPreview/commons/build-profile.json5 new file mode 100644 index 000000000..284a1c335 --- /dev/null +++ b/CameraKit/DualPreview/commons/build-profile.json5 @@ -0,0 +1,20 @@ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/CameraKit/DualPreview/commons/hvigorfile.ts b/CameraKit/DualPreview/commons/hvigorfile.ts new file mode 100644 index 000000000..805c5d7f6 --- /dev/null +++ b/CameraKit/DualPreview/commons/hvigorfile.ts @@ -0,0 +1,6 @@ +import { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} \ No newline at end of file diff --git a/CameraKit/DualPreview/commons/oh-package.json5 b/CameraKit/DualPreview/commons/oh-package.json5 new file mode 100644 index 000000000..d50184a32 --- /dev/null +++ b/CameraKit/DualPreview/commons/oh-package.json5 @@ -0,0 +1,9 @@ +{ + "name": "commons", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": {} +} diff --git a/CameraKit/DualPreview/commons/src/main/ets/utils/Logger.ets b/CameraKit/DualPreview/commons/src/main/ets/utils/Logger.ets new file mode 100644 index 000000000..c769a6076 --- /dev/null +++ b/CameraKit/DualPreview/commons/src/main/ets/utils/Logger.ets @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; + +export class Logger { + private static readonly DOMAIN: number = 0xFF00; + private static readonly TAG: string = 'com.example.customcamera'; + private static readonly PREFIX: string = '[camera-log]'; + + public static debug(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.debug(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static info(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.info(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static warn(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.warn(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static error(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.error(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static fatal(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.fatal(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + private constructor() { + } +} diff --git a/CameraKit/DualPreview/commons/src/main/module.json5 b/CameraKit/DualPreview/commons/src/main/module.json5 new file mode 100644 index 000000000..74e2fe951 --- /dev/null +++ b/CameraKit/DualPreview/commons/src/main/module.json5 @@ -0,0 +1,10 @@ +{ + "module": { + "name": "commons", + "type": "har", + "deviceTypes": [ + "phone", + "tablet" + ] + } +} diff --git a/CameraKit/DualPreview/entry/.gitignore b/CameraKit/DualPreview/entry/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/CameraKit/DualPreview/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/build-profile.json5 b/CameraKit/DualPreview/entry/build-profile.json5 new file mode 100644 index 000000000..50e33db6e --- /dev/null +++ b/CameraKit/DualPreview/entry/build-profile.json5 @@ -0,0 +1,26 @@ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/hvigorfile.ts b/CameraKit/DualPreview/entry/hvigorfile.ts new file mode 100644 index 000000000..c6edcd904 --- /dev/null +++ b/CameraKit/DualPreview/entry/hvigorfile.ts @@ -0,0 +1,6 @@ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/CameraKit/DualPreview/entry/oh-package-lock.json5 b/CameraKit/DualPreview/entry/oh-package-lock.json5 new file mode 100644 index 000000000..01723a120 --- /dev/null +++ b/CameraKit/DualPreview/entry/oh-package-lock.json5 @@ -0,0 +1,29 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "camera@../camera": "camera@../camera", + "commons@../commons": "commons@../commons" + }, + "packages": { + "camera@../camera": { + "name": "camera", + "version": "1.0.0", + "resolved": "../camera", + "registryType": "local", + "dependencies": { + "commons": "file:../commons" + } + }, + "commons@../commons": { + "name": "commons", + "version": "1.0.0", + "resolved": "../commons", + "registryType": "local" + } + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/oh-package.json5 b/CameraKit/DualPreview/entry/oh-package.json5 new file mode 100644 index 000000000..4f1c83bce --- /dev/null +++ b/CameraKit/DualPreview/entry/oh-package.json5 @@ -0,0 +1,13 @@ +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + "commons": "file:../commons", + "camera": "file:../camera" + } +} + diff --git a/CameraKit/DualPreview/entry/src/main/ets/constants/Constants.ets b/CameraKit/DualPreview/entry/src/main/ets/constants/Constants.ets new file mode 100644 index 000000000..63a319b6d --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/constants/Constants.ets @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Permissions } from "@kit.AbilityKit"; + +class CameraConstant { + static readonly RATIO_PHOTO: number = 4 / 3; + static readonly RATIO_VIDEO: number = 16 / 9; + static readonly PERMISSIONS: Permissions[] = [ + 'ohos.permission.CAMERA', + 'ohos.permission.MICROPHONE', + 'ohos.permission.MEDIA_LOCATION', + 'ohos.permission.WRITE_IMAGEVIDEO', + 'ohos.permission.READ_IMAGEVIDEO', + 'ohos.permission.APPROXIMATELY_LOCATION' + ]; +} + +export default CameraConstant; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/entryability/EntryAbility.ets b/CameraKit/DualPreview/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..fe3138ba2 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ConfigurationConstant, UIAbility } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; +import WindowUtil from '../utils/WindowUtil'; + +const DOMAIN = 0x0000; + +export default class EntryAbility extends UIAbility { + onCreate(): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + WindowUtil.enterImmersive(windowStage.getMainWindowSync()); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); + return; + } + hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/pages/Index.ets b/CameraKit/DualPreview/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..721d1b98c --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,534 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { sensor } from '@kit.SensorServiceKit'; +import { common } from '@kit.AbilityKit'; +import { display } from '@kit.ArkUI'; +import { curves } from '@kit.ArkUI'; +import { + CameraManager, + GridLine, + ImageReceiverManager, + LevelIndicator, + PhotoManager, + PreviewManager, + VideoManager +} from 'camera'; +import CameraConstant from '../constants/Constants'; +import { calCameraPoint, getClampedChildPosition, limitNumberInRange, showToast } from '../utils/CommonUtil'; +import RefreshableTimer from '../utils/RefreshableTimer'; +import PermissionManager from '../utils/PermissionManager'; +import ZoomButtonsView from '../views/ZoomButtonsView'; +import ModeButtonsView from '../views/ModeButtonsView'; +import SettingButtonsView from '../views/SettingButtonsView'; +import OperateButtonsView from '../views/OperateButtonsView'; +import PreviewViewModel from '../viewmodels/PreviewViewModel'; + +@Extend(SymbolGlyph) +function funcButtonStyle() { + .fontSize(22) + .fontColor([Color.White]) + .borderRadius('50%') + .padding(12) + .backgroundColor('#664D4D4D') +} + +@Entry +@Component +struct Index { + private context: Context = this.getUIContext().getHostContext()!; + private applicationContext = this.context.getApplicationContext(); + private windowClass = (this.context as common.UIAbilityContext).windowStage.getMainWindowSync(); + @State videoManager: VideoManager = new VideoManager(this.context); + @State isSinglePhoto: boolean = false; + @State isLivePhoto: boolean = false; + private photoManager: PhotoManager = new PhotoManager(this.context, true, this.isSinglePhoto); + private previewManager: PreviewManager = new PreviewManager(() => { + this.onPreviewStart() + }); + private imageReceiverManager: ImageReceiverManager = new ImageReceiverManager(px => { + this.onImageReceiver(px); + }); + private cameraManager: CameraManager = new CameraManager(this.context, [this.previewManager, + this.photoManager, this.videoManager, this.imageReceiverManager]); + @State previewVM: PreviewViewModel = new PreviewViewModel(this.getUIContext()); + @State isGridLineVisible: boolean = false; + @State isLevelIndicatorVisible: boolean = false; + @State isPreviewImageVisible: boolean = true; + @State isFocusBoxVisible: boolean = false; + @State focusBoxPosition: Edges = { top: 0, left: 0 }; + private focusBoxSize: Size = { width: 80, height: 80 }; + private focusBoxTimer: RefreshableTimer = new RefreshableTimer(() => { + this.isFocusBoxVisible = false; + }, 3 * 1000); + private exposureFontSize: number = 24; + @State isSleeping: boolean = false; + private sleepTimer?: RefreshableTimer; + private zoomRange: number[] = []; + @State zooms: number[] = [1, 5, 10]; + @State currentZoom: number = 1; + @State isZoomPinching: boolean = false; + private originZoomBeforePinch: number = 1; // record zoom after pinch, sale base it. + @State previewImage: PixelMap | ResourceStr = ''; + private PreviewImageHeight: number = 150; + @State photoDelayTime: number = 0; + @State photoRemainder: number = 0; + @State isDelayTakePhoto: boolean = false; + @State acc: sensor.AccelerometerResponse = { x: 0, y: 0, z: 0 } as sensor.AccelerometerResponse; + private setPreviewSize: () => void = () => { + this.previewVM.setPreviewSize(); + } + @State isShowBlack: boolean = false; + @StorageLink('captureClick') @Watch('onCaptureClick') captureClickFlag: number = 0; + @State flashBlackOpacity: number = 1; + + async aboutToAppear() { + this.addGravityEventListener(); + this.initSleepTimer(); + this.registerApplicationStateChange(); + this.addOrientationChangeEventListener(); + display.on('foldStatusChange', () => { + this.onFoldStatusChange() + }); + } + + aboutToDisappear(): void { + this.removeOrientationChangeEventListener(); + } + + // [Start addGravityEventListener] + addGravityEventListener() { + sensor.on(sensor.SensorId.GRAVITY, (data) => { + this.acc = data; + }, { interval: 100 * 1000 * 1000 }); // 100ms + } + + // [End addGravityEventListener] + + addOrientationChangeEventListener() { + this.windowClass.on('windowSizeChange', this.setPreviewSize); + } + + removeOrientationChangeEventListener() { + this.windowClass.off('windowSizeChange', this.setPreviewSize); + } + + onImageReceiver(pixelMap: PixelMap) { + this.previewImage = pixelMap; + } + + // [Start initSleepTimer] + initSleepTimer() { + this.sleepTimer = new RefreshableTimer(() => { + this.previewVM.openPreviewBlur(); + this.isSleeping = true; + this.cameraManager.release(); + }, 30 * 1000); + this.sleepTimer.start(); + const observer = this.getUIContext().getUIObserver(); + observer.on('willClick', () => { + this.sleepTimer?.refresh(); + }); + } + + // [End initSleepTimer] + + async onFoldStatusChange() { + await this.cameraManager.release(); + await this.startCamera(); + this.syncButtonSettings(); + } + + // [Start registerApplicationStateChange] + registerApplicationStateChange() { + this.applicationContext.on('applicationStateChange', { + onApplicationForeground: async () => { + await this.startCamera(); + // [StartExclude registerApplicationStateChange] + this.syncButtonSettings(); + // [EndExclude registerApplicationStateChange] + }, + onApplicationBackground: () => { + // [StartExclude registerApplicationStateChange] + this.previewVM.openPreviewBlur(); + // [EndExclude registerApplicationStateChange] + this.cameraManager.release(); + } + }) + } + + async startCamera() { + const cameraPosition = this.previewVM.getCameraPosition(); + const sceneMode = this.previewVM.getSceneMode(); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + } + + // [End registerApplicationStateChange] + + exitApp() { + this.applicationContext.killAllProcesses(); + } + + onPreviewStart() { + this.previewVM.closePreviewBlur(); + } + + initZooms() { + const zoomRange = this.cameraManager.getZoomRange(); + const minZoom = zoomRange[0]; + this.zoomRange = zoomRange; + if (minZoom < this.zooms[0]) { + this.zooms.unshift(minZoom); + } + } + + initRates() { + const frameRates = this.previewManager.getSupportedFrameRates(); + if (frameRates && frameRates[0]) { + const minRate = frameRates[0].min; + const maxRate = frameRates[0].max; + this.previewVM.rates = [minRate, maxRate]; + this.previewVM.currentRate = maxRate; + this.previewManager.setFrameRate(maxRate, maxRate); + } + ; + } + + syncButtonSettings() { + this.previewManager.setFrameRate(this.previewVM.currentRate, this.previewVM.currentRate); + this.photoManager.enableMovingPhoto(this.isLivePhoto); + this.photoManager.setPhotoOutputCallback(this.isSinglePhoto); + } + + flashBlackAnim() { + this.flashBlackOpacity = 1; + this.isShowBlack = true; + animateToImmediately({ + curve: curves.interpolatingSpring(1, 1, 410, 38), + delay: 50, + onFinish: () => { + this.isShowBlack = false; + this.flashBlackOpacity = 1; + } + }, () => { + this.flashBlackOpacity = 0; + }) + } + + onCaptureClick(): void { + this.flashBlackAnim(); + } + + @Builder + preview() { + // [Start Stack] + Stack({ + alignContent: Alignment.Center + }) { + // [Start XComponent] + // [Start XComponent_gesture] + XComponent({ + type: XComponentType.SURFACE, + controller: this.previewVM.xComponentController + }) + .size({ height: '100%', width: '100%' }) + // [StartExclude Stack] + // [StartExclude XComponent_gesture] + .onLoad(async () => { + // [StartExclude XComponent] + await PermissionManager.request(CameraConstant.PERMISSIONS, this.context) + .catch(() => { + this.exitApp() + }); + // [EndExclude XComponent] + this.previewVM.surfaceId = this.previewVM.xComponentController.getXComponentSurfaceId(); + this.previewVM.setPreviewSize(); + this.previewVM.xComponentController.setXComponentSurfaceRotation({ lock: true }); + // [StartExclude XComponent] + await this.startCamera(); + this.initZooms(); + this.initRates(); + // [EndExclude XComponent] + }) + // [StartExclude XComponent_gesture] + // [End XComponent] + .gesture( + PinchGesture({ fingers: 2 }) + .onActionStart(() => { + this.originZoomBeforePinch = this.currentZoom; + this.isZoomPinching = true; + }) + .onActionUpdate((event: GestureEvent) => { + const targetZoom = this.originZoomBeforePinch * event.scale; + this.currentZoom = limitNumberInRange(targetZoom, this.zoomRange); + this.cameraManager.setZoomRatio(this.currentZoom); + }) + .onActionEnd(() => { + this.isZoomPinching = false; + }) + ) + // [End XComponent_gesture] + .onClick(event => { + this.isFocusBoxVisible = true; + const previewSize = this.previewVM.previewSize; + const cameraPoint = calCameraPoint( + this.getUIContext().vp2px(event.x), + this.getUIContext().vp2px(event.y), + previewSize.width, + previewSize.height + ); + this.cameraManager.setFocusPoint(cameraPoint); + this.cameraManager.setMeteringPoint(cameraPoint); + this.focusBoxPosition = getClampedChildPosition(this.focusBoxSize, { + width: this.getUIContext().px2vp(previewSize.width), + height: this.getUIContext().px2vp(previewSize.height) + }, event); + this.focusBoxTimer.refresh(); + }) + // [EndExclude Stack] + if (this.isGridLineVisible) { + GridLine() + } + // [StartExclude Stack] + if (this.isLevelIndicatorVisible) { + LevelIndicator({ + acc: this.acc + }) + } + // focus box + if (this.isFocusBoxVisible) { + Image($r('app.media.focus_box')) + .width(80) + .height(80) + .position(this.focusBoxPosition) + SymbolGlyph($r('sys.symbol.sun_max')) + .fontSize(this.exposureFontSize) + .fontColor([Color.White]) + .position(this.getExposurePosition()) + } + + if (this.isDelayTakePhoto) { + Text(`${this.photoRemainder}S`) + .fontSize(44) + .fontWeight(FontWeight.Regular) + .fontColor(Color.White) + } + // [EndExclude Stack] + + if (this.isShowBlack) { + Column() + .key('black') + .width('100%') + .height('100%') + .backgroundColor(Color.Black) + .opacity(this.flashBlackOpacity) + } + } + // .width('100%') + // .height('100%') + // [End Stack] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + // .width(this.previewVM.getPreviewWidth()) + // .height(this.previewVM.getPreviewHeight()) + // .margin({ top: this.previewVM.getPreviewTop() }) + // .blur(this.previewVM.blurRadius) + // .rotate(this.previewVM.blurRotation) + .size({ width: '100%', height: '100%' }) + } + + // [Start wakeupMask] + @Builder + wakeupMask() { + Column() { + Text($r('app.string.wakeup_text')) + .fontColor(Color.White) + .opacity(0.6) + } + // [StartExclude wakeupMask] + .width('100%') + .height('100%') + .backgroundColor(Color.Black) + .justifyContent(FlexAlign.Center) + // [EndExclude wakeupMask] + .onClick(async () => { + this.isSleeping = false; + this.sleepTimer?.refresh(); + await this.startCamera(); + this.syncButtonSettings(); + }) + } + + // [End wakeupMask] + + @Builder + gridLineButton() { + SymbolGlyph( + this.isGridLineVisible + ? $r('sys.symbol.camera_assistive_grid') + : $r('sys.symbol.camera_assistive_grid_slash') + ) + .funcButtonStyle() + .onClick(() => { + this.isGridLineVisible = !this.isGridLineVisible; + const message = this.isGridLineVisible ? $r('app.string.grid_line_open') : $r('app.string.grid_line_close'); + showToast(this.getUIContext(), message); + }) + } + + @Builder + levelButton() { + SymbolGlyph($r('sys.symbol.horizontal_level')) + .funcButtonStyle() + .onClick(() => { + this.isLevelIndicatorVisible = !this.isLevelIndicatorVisible; + const message = this.isLevelIndicatorVisible ? $r('app.string.level_open') : $r('app.string.level_close'); + showToast(this.getUIContext(), message); + }) + } + + @Builder + previewImageButton() { + SymbolGlyph(this.isPreviewImageVisible ? $r('sys.symbol.eye') : $r('sys.symbol.eye_slash')) + .funcButtonStyle() + .onClick(() => { + this.isPreviewImageVisible = !this.isPreviewImageVisible; + const message = + this.isPreviewImageVisible ? $r('app.string.preview_image_open') : $r('app.string.preview_image_close'); + showToast(this.getUIContext(), message); + }) + } + + getPreviewImageWidth() { + const rotation = display.getDefaultDisplaySync().rotation * 90; + const ratio = this.previewVM.getPreviewRatio(); + const displayRatio = rotation === 90 || rotation === 270 ? 1 / ratio : ratio; + return this.PreviewImageHeight / displayRatio; + } + + getExposurePosition(): Edges { + const focusBoxLeft = this.focusBoxPosition.left as number; + const focusBoxTop = this.focusBoxPosition.top as number; + const exposureWidth = this.exposureFontSize; + const exposureHeight = this.exposureFontSize; + const focusBoxWidth = this.focusBoxSize.width; + const focusBoxHeight = this.focusBoxSize.height; + const previewWidth = this.getUIContext().px2vp(this.previewVM.previewSize.width); + const GAP = 10; + const top = focusBoxTop - exposureHeight / 2 + focusBoxHeight / 2; + const left = focusBoxLeft > previewWidth / 2 + ? focusBoxLeft - GAP - exposureWidth + : focusBoxLeft + focusBoxWidth + GAP; + return { top, left }; + } + + @Builder + previewImageView() { + Image(this.previewImage) + .width(this.getPreviewImageWidth()) + .height(this.PreviewImageHeight) + .align(Alignment.TopStart) + // .alignRules({ + // top: { anchor: '__container__', align: VerticalAlign.Top }, + // left: { anchor: '__container__', align: HorizontalAlign.Start } + // }) + .margin({ + top: '40%', + left: '4%', + }) + } + + @Builder + funcButtonsView() { + Column({ space: 24 }) { + //this.gridLineButton() + //this.levelButton() + this.previewImageButton() + } + .alignRules({ + top: { anchor: 'settingButtonsView', align: VerticalAlign.Bottom }, + right: { anchor: 'settingButtonsView', align: HorizontalAlign.End } + }) + .margin({ + top: 40, + right: 10 + }) + } + + build() { + RelativeContainer() { + Stack({ alignContent: Alignment.TopStart }) { + this.preview() + if (this.isPreviewImageVisible) { + this.previewImageView() + } + } + + this.funcButtonsView() + SettingButtonsView({ + previewVM: this.previewVM, + cameraManager: this.cameraManager, + previewManager: this.previewManager, + photoManager: this.photoManager, + videoManager: this.videoManager, + photoDelayTime: this.photoDelayTime, + isSinglePhoto: this.isSinglePhoto, + isLivePhoto: this.isLivePhoto + }) + if (!this.photoRemainder) { + if (!this.previewVM.isFront) { + ZoomButtonsView({ + cameraManager: this.cameraManager, + zoomRange: this.zoomRange, + zooms: this.zooms, + currentZoom: this.currentZoom + }) + } + ModeButtonsView({ + previewVM: this.previewVM, + photoManager: this.photoManager, + videoManager: this.videoManager, + cameraManager: this.cameraManager, + ImageReceiverManager: this.imageReceiverManager, + syncButtonSettings: () => { + this.syncButtonSettings(); + } + }) + OperateButtonsView({ + previewVM: this.previewVM, + cameraManager: this.cameraManager, + photoManager: this.photoManager, + videoManager: this.videoManager, + isDelayTakePhoto: this.isDelayTakePhoto, + photoDelayTime: this.photoDelayTime, + ImageReceiverManager: this.imageReceiverManager, + photoRemainder: this.photoRemainder, + syncButtonSettings: () => { + this.syncButtonSettings(); + } + }) + } + if (this.isSleeping) { + this.wakeupMask() + } + } + .height('100%') + .width('100%') + .backgroundColor(Color.Black) + .onClick(() => { + }) + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/utils/CommonUtil.ets b/CameraKit/DualPreview/entry/src/main/ets/utils/CommonUtil.ets new file mode 100644 index 000000000..fcf47ba52 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/utils/CommonUtil.ets @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Point } from '@kit.TestKit'; +import { camera } from '@kit.CameraKit'; +import { display } from '@kit.ArkUI'; + +export function limitNumberInRange(src: number, range: number[]) { + if (range.length < 2) return src; + if (src < range[0]) return range[0]; + if (src > range[1]) return range[1]; + return src; +} + +// find start index the target in which range +// eg: target: 1.5 arr: [0, 1, 5, 10] return 1 +export function findRangeIndex(target: number, arr: number[]) { + if (arr.length === 0) { + return -1; + } + if (target >= arr[arr.length - 1]) { + return arr.length - 1; + } + return [...arr].sort((a, b) => a - b).findIndex((n, i) => { + return target >= n && target < arr[i + 1]; + }); +} + +// Math floor float by digit +// eg: toFixed(9.97, 1) -> 9.9 +export function toFixed(num: number, digit: number): string { + const scale = 10 ** digit; + return (Math.floor(num * scale) / scale).toFixed(digit); +} + +// [Start getClampedChildPosition] +// cal absolute position in parent area +export function getClampedChildPosition(childSize: Size, parentSize: Size, point: Point): Edges { + // center point + let left = point.x - childSize.width / 2; + let top = point.y - childSize.height / 2; + // limit in left + if (left < 0) { + left = 0; + } + // limit in right + if (left + childSize.width > parentSize.width) { + left = parentSize.width - childSize.width; + } + // limit in top + if (top < 0) { + top = 0; + } + // limit in bottom + if (top + childSize.height > parentSize.height) { + top = parentSize.height - childSize.height; + } + return { left, top }; +} +// [End getClampedChildPosition] + +export function showToast( + UIContext: UIContext, + message: ResourceStr = '', + duration = 2000, + alignment = Alignment.Top, + offset: Offset = { dx: 0, dy: 300 } +) { + UIContext.getPromptAction().openToast({ + message, + duration, + alignment, + offset + }); +} + +// [Start calCameraPoint] +export function calCameraPoint(eventX: number, eventY: number, width: number, height: number): camera.Point { + const displayRotation = display.getDefaultDisplaySync().rotation * 90; + if (displayRotation === 0) { + return { x: eventY / height, y: 1 - eventX / width }; + } + if (displayRotation === 90) { + return { x: 1 - eventX / width, y: 1 - eventY / height }; + } + if (displayRotation === 180) { + return { x: 1 - eventY / height, y: eventX / width }; + } + return { x: eventX / width, y: eventY / height }; +} +// [End calCameraPoint] \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/utils/PermissionManager.ets b/CameraKit/DualPreview/entry/src/main/ets/utils/PermissionManager.ets new file mode 100644 index 000000000..c65190ea0 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/utils/PermissionManager.ets @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { abilityAccessCtrl, Context, Permissions } from '@kit.AbilityKit'; +import { Logger } from 'commons'; + +const TAG = 'PermissionManager'; + +// [Start request_permissions] +class PermissionManager { + private static atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); + + static async request(permissions: Permissions[], context: Context) { + const data = await PermissionManager.atManager.requestPermissionsFromUser(context, permissions); + const grantStatus: number[] = data.authResults; + const deniedPermissions = permissions.filter((_, i) => grantStatus[i] !== 0); + for (const permission of deniedPermissions) { + const secondGrantStatus = await PermissionManager.atManager.requestPermissionOnSetting(context, [permission]); + if (secondGrantStatus[0] !== 0) { + Logger.error(TAG, 'permission denied'); + throw new Error('permission denied'); + } + } + } +} +// [End request_permissions] + +export default PermissionManager; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/utils/RefreshableTimer.ets b/CameraKit/DualPreview/entry/src/main/ets/utils/RefreshableTimer.ets new file mode 100644 index 000000000..4956219f7 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/utils/RefreshableTimer.ets @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// [Start RefreshableTimer] +class RefreshableTimer { + private timerId?: number; + private readonly timeout: number; + private callback: () => void; + private isActive: boolean = false; + + constructor(callback: () => void, timeout: number) { + this.callback = callback; + this.timeout = timeout; + } + + start(): void { + this.timerId = setTimeout(() => { + this.callback(); + this.isActive = false; + }, this.timeout); + this.isActive = true; + } + + clear(): void { + clearTimeout(this.timerId); + this.timerId = undefined; + this.isActive = false; + } + + refresh(): void { + this.clear(); + this.start(); + } + + isRunning(): boolean { + return this.isActive; + } +} +// [End RefreshableTimer] + +export default RefreshableTimer; diff --git a/CameraKit/DualPreview/entry/src/main/ets/utils/WindowUtil.ets b/CameraKit/DualPreview/entry/src/main/ets/utils/WindowUtil.ets new file mode 100644 index 000000000..9d54a733d --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/utils/WindowUtil.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { display, window } from '@kit.ArkUI'; +import { Logger } from 'commons'; + +const TAG = 'WindowUtil' + +class WindowUtil { + static async enterImmersive(window: window.Window): Promise { + try { + await window.setWindowLayoutFullScreen(true); + await window.setWindowSystemBarEnable([]); + } catch (exception) { + Logger.error(TAG, 'Failed to enter immersive. Cause:', JSON.stringify(exception)); + } + } + + // Given a ratio, obtain the maximum display width and height based on the screen width and height. + static getMaxDisplaySize(ratio: number): Size { + const defaultDisplay: display.Display = display.getDefaultDisplaySync(); + const windowWidth: number = defaultDisplay.width; + const windowHeight: number = defaultDisplay.height; + const rotation = display.getDefaultDisplaySync().rotation * 90; + if (rotation === 90 || rotation === 270) { + ratio = 1 / ratio; + } + // Calculate the height based on the screen width. + const calculatedHeight = windowWidth * ratio; + if (calculatedHeight <= windowHeight) { + return { + width: windowWidth, + height: calculatedHeight + }; + } else { + return { + width: windowHeight / ratio, + height: windowHeight + }; + } + } + + static getWindowRatio(): number { + const defaultDisplay: display.Display = display.getDefaultDisplaySync(); + return defaultDisplay.height / defaultDisplay.width; + } +} + +export default WindowUtil; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/viewmodels/PreviewViewModel.ets b/CameraKit/DualPreview/entry/src/main/ets/viewmodels/PreviewViewModel.ets new file mode 100644 index 000000000..c277ea257 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/viewmodels/PreviewViewModel.ets @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { curves, display } from '@kit.ArkUI'; +import { camera } from '@kit.CameraKit'; +import WindowUtil from '../utils/WindowUtil'; +import CameraConstant from '../constants/Constants'; + +export enum CameraMode { + PHOTO, + VIDEO +} + +/** + * States and methods related to preview. + */ +class PreviewViewModel { + private uiContext: UIContext; + // [Start isFront] + isFront: boolean = false; + // [StartExclude isFront] + cameraMode: CameraMode = CameraMode.PHOTO; + xComponentController: XComponentController = new XComponentController(); + surfaceId: string = ''; + previewSize: Size = WindowUtil.getMaxDisplaySize(CameraConstant.RATIO_PHOTO); + rates?: number[] = []; + currentRate: number = 0; + blurRadius: number = 0; + blurRotation: RotateOptions = { y: 0.5, angle: 0}; + + constructor(uiContext: UIContext) { + this.uiContext = uiContext; + } + + // [EndExclude isFront] + getCameraPosition() { + return this.isFront + ? camera.CameraPosition.CAMERA_POSITION_FRONT + : camera.CameraPosition.CAMERA_POSITION_BACK; + } + // [End isFront] + + getPreviewRatio() { + return this.cameraMode === CameraMode.PHOTO + ? CameraConstant.RATIO_PHOTO + : CameraConstant.RATIO_VIDEO; + } + + getSceneMode() { + return this.cameraMode === CameraMode.PHOTO + ? camera.SceneMode.NORMAL_PHOTO + : camera.SceneMode.NORMAL_VIDEO; + } + + // [Start getProfile] + getProfile: (cameraOrientation: number, picFormat: camera.CameraFormat) => camera.Profile = (cameraOrientation, picFormat) => { + const displaySize: Size = WindowUtil.getMaxDisplaySize(this.getPreviewRatio()); + const displayRotation = display.getDefaultDisplaySync().rotation * 90; + const isRevert = (cameraOrientation + displayRotation) % 180 !== 0; + return { + // format: camera.CameraFormat.CAMERA_FORMAT_YUV_420_SP, + format: picFormat, + size: { + height: isRevert ? displaySize.width : displaySize.height, + width: isRevert ? displaySize.height : displaySize.width + } + }; + } + // [End getProfile] + + // [Start setPreviewSize] + setPreviewSize() { + const displaySize: Size = WindowUtil.getMaxDisplaySize(this.getPreviewRatio()); + this.previewSize = displaySize; + this.xComponentController.setXComponentSurfaceRect({ + surfaceWidth: displaySize.width, + surfaceHeight: displaySize.height + }); + } + // [End setPreviewSize] + + getPreviewTop() { + const previewRatio = this.getPreviewRatio(); + return WindowUtil.getWindowRatio() > previewRatio ? 85 : 0; + } + + getPreviewWidth() { + return this.uiContext.px2vp(this.previewSize.width); + } + + getPreviewHeight() { + return this.uiContext.px2vp(this.previewSize.height); + } + + isPhotoMode() { + return this.cameraMode === CameraMode.PHOTO; + } + + isVideoMode() { + return this.cameraMode === CameraMode.VIDEO; + } + + isCurrentCameraMode(mode: CameraMode) { + return this.cameraMode === mode; + } + + openPreviewBlur() { + animateToImmediately({ + duration: 200, + curve: Curve.Friction + }, () => { + this.blurRadius = 150; + }); + } + + rotatePreviewBlur() { + animateToImmediately({ + delay: 50, + duration: 200, + curve: curves.cubicBezierCurve(0.2, 0, 0.83, 1), + onFinish: () => { + this.rotatePreviewBlurSecond(); + } + }, () => { + this.blurRotation = { y: 0.5, angle: 90 }; + }); + } + + rotatePreviewBlurSecond() { + this.blurRotation = { y: 0.5, angle: 270 }; + animateToImmediately({ + duration: 200, + curve: curves.cubicBezierCurve(0.17, 0, 0.2, 1), + onFinish: () => { + this.blurRotation = { y: 0.5, angle: 0 }; + } + }, () => { + this.blurRotation = { y: 0.5, angle: 360 }; + }); + } + + closePreviewBlur() { + animateToImmediately({ + duration: 200, + curve: Curve.FastOutSlowIn + }, () => { + this.blurRadius = 0; + }); + } +} + +export default PreviewViewModel; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/views/ModeButtonsView.ets b/CameraKit/DualPreview/entry/src/main/ets/views/ModeButtonsView.ets new file mode 100644 index 000000000..a1b6494d2 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/views/ModeButtonsView.ets @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { CameraManager, ImageReceiverManager, PhotoManager, VideoManager } from 'camera'; +import PreviewViewModel, { CameraMode } from '../viewmodels/PreviewViewModel'; + +export interface CameraModeButton { + title: ResourceStr; + mode: CameraMode; + onClick?: () => void; +} + +@Component +struct ModeButtonsView { + private cameraModeButtons: CameraModeButton[] = [ + { + title: $r('app.string.photo'), + mode: CameraMode.PHOTO + }, + { + title: $r('app.string.video'), + mode: CameraMode.VIDEO + } + ] + @Link previewVM: PreviewViewModel; // Do not use @prop, otherwise deep copying, some underlying data will be lost. + @Require cameraManager: CameraManager; + @Require photoManager: PhotoManager; + @Require videoManager: VideoManager; + @Require ImageReceiverManager: ImageReceiverManager; + @Require syncButtonSettings: () => void; + + build() { + Row() { + ForEach(this.cameraModeButtons, (modeBtn: CameraModeButton) => { + Text(modeBtn.title) + .fontColor(Color.White) + .fontSize(14) + .fontWeight(this.previewVM.isCurrentCameraMode(modeBtn.mode) ? FontWeight.Bold : FontWeight.Normal) + .onClick(async () => { + if (modeBtn.onClick) { + modeBtn.onClick(); + } else { + if (this.previewVM.isCurrentCameraMode(modeBtn.mode)) { + return; + } + this.previewVM.openPreviewBlur(); + this.previewVM.cameraMode = modeBtn.mode; + this.previewVM.setPreviewSize(); + const sceneMode = this.previewVM.getSceneMode(); + const cameraPosition = this.previewVM.getCameraPosition(); + await this.cameraManager.release(); + this.photoManager.setIsActive(this.previewVM.isPhotoMode() ? true : false); + this.videoManager.setIsActive(this.previewVM.isPhotoMode() ? false : true); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + this.syncButtonSettings(); + } + }) + }, (modeBtn: CameraModeButton) => modeBtn.mode.toString()) + } + .id('modeButtonsView') + .width('40%') + .justifyContent(FlexAlign.SpaceAround) + .alignRules({ + bottom: { anchor: 'operateButtonsView', align: VerticalAlign.Top }, + middle: { anchor: 'operateButtonsView', align: HorizontalAlign.Center } + }) + .margin({ bottom: 40 }) + } +} + +export default ModeButtonsView; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/views/OperateButtonsView.ets b/CameraKit/DualPreview/entry/src/main/ets/views/OperateButtonsView.ets new file mode 100644 index 000000000..8d574d9df --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/views/OperateButtonsView.ets @@ -0,0 +1,267 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { image } from '@kit.ImageKit'; +import { common } from '@kit.AbilityKit'; +import { AVRecorderState, CameraManager, ImageReceiverManager, PhotoManager, VideoManager } from 'camera'; +import PreviewViewModel from '../viewmodels/PreviewViewModel'; + +@Component +struct OperateButtonsView { + @Link isDelayTakePhoto: boolean; + @Link previewVM: PreviewViewModel; + @Require cameraManager: CameraManager; + @Link videoManager: VideoManager; // Do not use @prop, otherwise deep copying, some underlying data will be lost. + @Require photoManager: PhotoManager; + @Require ImageReceiverManager :ImageReceiverManager; + @Prop @Require photoDelayTime: number; + @Link photoRemainder: number; + private photoDelayTimer:number = 0; + @State thumbnail: image.PixelMap | string = ''; + @State thumbnailUrl: string = ''; + @Require syncButtonSettings: () => void; + private context = this.getUIContext().getHostContext() as common.UIAbilityContext; + private setThumbnail: (pixelMap: image.PixelMap, url: string) => void = (pixelMap: image.PixelMap, url: string) => { + this.thumbnail = pixelMap + this.thumbnailUrl = url + } + @StorageLink('captureClick') captureClickFlag: number = 0; + + aboutToAppear(): void { + this.photoManager.setCallback(this.setThumbnail); + this.videoManager.setVideoCallback(this.setThumbnail); + } + + @Builder + photoButton() { + Column() { + Column() + .width(48) + .height(48) + .borderRadius('50%') + .border({ + color: Color.White, + width: 24 + }) + } + .width(64) + .height(64) + .borderRadius('50%') + .border({ + color: Color.White, + width: 1 + }) + .justifyContent(FlexAlign.Center) + .onClick(() => { + if (this.photoDelayTime) { + this.isDelayTakePhoto = true; + this.photoRemainder = this.photoDelayTime; + this.photoDelayTimer = setInterval(()=>{ + this.photoRemainder--; + if(this.photoRemainder === 0){ + this.photoManager.capture(this.previewVM.isFront); + this.captureClickFlag++; + this.isDelayTakePhoto = false; + clearTimeout(this.photoDelayTimer); + } + },1000) + } else { + this.photoManager.capture(this.previewVM.isFront); + this.captureClickFlag++; + } + }) + } + + @Builder + videoStartButton() { + Column() { + Column() + .width(52) + .height(52) + .backgroundColor(Color.Red) + .borderRadius('50%') + .border({ + color: Color.White, + width: 8 + }) + } + .width(64) + .height(64) + .borderRadius('50%') + .border({ + color: Color.White, + width: 1 + }) + .justifyContent(FlexAlign.Center) + .onClick(() => { + this.videoManager.start(this.previewVM.isFront); + }) + } + + @Builder + videoStopButton() { + Column() { + Column() + .width(28) + .height(28) + .borderRadius(10) + .backgroundColor(Color.Red) + } + .width(64) + .height(64) + .borderRadius('50%') + .border({ + color: Color.White, + width: 1 + }) + .justifyContent(FlexAlign.Center) + .onClick(async () => { + if (this.videoManager.state === AVRecorderState.STARTED || this.videoManager.state === AVRecorderState.PAUSED) { + await this.videoManager.stop(); + await this.cameraManager.release(); + const cameraPosition = this.previewVM.getCameraPosition(); + const sceneMode = this.previewVM.getSceneMode(); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + this.syncButtonSettings(); + } + }) + } + + @Builder + videoPauseButton() { + SymbolGlyph($r('sys.symbol.pause')) + .fontColor([Color.White]) + .fontSize(22) + .fontWeight(FontWeight.Bolder) + .padding(11) + .borderWidth(1) + .borderColor(Color.White) + .borderRadius('50%') + .symbolEffect(new ReplaceSymbolEffect(EffectScope.WHOLE), true) + .onClick(async () => { + this.videoManager.pause(); + }) + } + + @Builder + videoResumeButton() { + SymbolGlyph($r('sys.symbol.play')) + .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR) + .fontColor([Color.White]) + .fontSize(22) + .padding(11) + .borderWidth(1) + .borderColor(Color.White) + .borderRadius('50%') + .onClick(async () => { + this.videoManager.resume(); + }) + } + + @Builder + thumbnailButton() { + Image(this.thumbnail) + .width(48) + .height(48) + .borderRadius('50%') + .borderWidth(this.thumbnail ? 1 : 0) + .borderColor(Color.White) + .clip(true) + .onClick(()=>{ + if(this.thumbnailUrl){ + this.context.startAbility({ + parameters: { uri: this.thumbnailUrl }, + action: 'ohos.want.action.viewData', + bundleName: 'com.huawei.hmos.photos', + abilityName: 'com.huawei.hmos.photos.MainAbility' + }); + } + }) + } + + @Builder + delayTakePhotoCancelButton() { + SymbolGlyph($r('sys.symbol.pause')) + .fontColor([Color.White]) + .fontSize(22) + .fontWeight(FontWeight.Bolder) + .padding(11) + .borderWidth(1) + .borderColor(Color.White) + .borderRadius('50%') + .symbolEffect(new ReplaceSymbolEffect(EffectScope.WHOLE), true) + .onClick(async () => { + this.isDelayTakePhoto = false; + clearTimeout(this.photoDelayTimer); + this.photoRemainder = 0; + }) + } + + // [Start toggleCameraPositionButton] + @Builder + toggleCameraPositionButton() { + Image($r('app.media.toggle_position')) + .width(48) + .height(48) + .onClick(async () => { + // [StartExclude toggleCameraPositionButton] + this.previewVM.openPreviewBlur(); + this.previewVM.rotatePreviewBlur(); + // [EndExclude toggleCameraPositionButton] + this.previewVM.isFront = !this.previewVM.isFront; + const cameraPosition = this.previewVM.getCameraPosition(); + const sceneMode = this.previewVM.getSceneMode(); + await this.cameraManager.release(); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + // [StartExclude toggleCameraPositionButton] + this.syncButtonSettings(); + // [EndExclude toggleCameraPositionButton] + }) + } + // [End toggleCameraPositionButton] + + build() { + Row() { + // this.thumbnailButton() + // if (this.previewVM.isPhotoMode()) { + // this.photoButton() + // } else { + // if (this.videoManager.isRecording()) { + // this.videoStopButton() + // } else { + // this.videoStartButton() + // } + // } + if (!this.videoManager.isRecording()) { + this.toggleCameraPositionButton() + } + // if (this.previewVM.isVideoMode() && this.videoManager.state === AVRecorderState.STARTED) { + // this.videoPauseButton() + // } else if (this.previewVM.isVideoMode() && this.videoManager.state === AVRecorderState.PAUSED) { + // this.videoResumeButton() + // } + } + .justifyContent(FlexAlign.SpaceAround) + .id('operateButtonsView') + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + }) + .margin({ bottom: 90 }) + .width('90%') + } +} + +export default OperateButtonsView; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/views/SettingButtonsView.ets b/CameraKit/DualPreview/entry/src/main/ets/views/SettingButtonsView.ets new file mode 100644 index 000000000..fdc7f91ab --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/views/SettingButtonsView.ets @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; +import { AVRecorderState, CameraManager, PhotoManager, PreviewManager, VideoManager } from 'camera'; +import { showToast } from '../utils/CommonUtil'; +import PreviewViewModel from '../viewmodels/PreviewViewModel'; + +interface FlashItem { + mode: camera.FlashMode; + image: Resource; + title: ResourceStr; + toast: ResourceStr; +} + +@Component +struct SettingButtonsView { + private flashItems: FlashItem[] = [ + { + mode: camera.FlashMode.FLASH_MODE_CLOSE, + image: $r('sys.symbol.camera_flash_slash'), + title: 'off', + toast: $r('app.string.flash_close') + }, + { + mode: camera.FlashMode.FLASH_MODE_OPEN, + image: $r('sys.symbol.camera_flash'), + title: 'on', + toast: $r('app.string.flash_open') + }, + { + mode: camera.FlashMode.FLASH_MODE_AUTO, + image: $r('sys.symbol.camera_flash_auto'), + title: 'auto', + toast: $r('app.string.flash_auto') + }, + { + mode: camera.FlashMode.FLASH_MODE_ALWAYS_OPEN, + image: $r('sys.symbol.lightbulb_1'), + title: 'always_on', + toast: $r('app.string.flash_always') + } + ]; + private photoFlashModes: camera.FlashMode[] = [ + camera.FlashMode.FLASH_MODE_CLOSE, + camera.FlashMode.FLASH_MODE_OPEN, + camera.FlashMode.FLASH_MODE_AUTO, + camera.FlashMode.FLASH_MODE_ALWAYS_OPEN + ]; + private videoFlashModes: camera.FlashMode[] = [ + camera.FlashMode.FLASH_MODE_CLOSE, + camera.FlashMode.FLASH_MODE_ALWAYS_OPEN + ]; + @State flashMode: camera.FlashMode = camera.FlashMode.FLASH_MODE_CLOSE; + @Link isLivePhoto: boolean; + @Require cameraManager: CameraManager; + @Require previewManager: PreviewManager; + @Require photoManager: PhotoManager; + @Link videoManager: VideoManager; + @Link photoDelayTime: number; + @State isStabilizationEnabled: boolean = false; + @Link isSinglePhoto: boolean; + @Link previewVM: PreviewViewModel; + + getFlashItem(mode: camera.FlashMode) { + return this.flashItems.find(item => item.mode === mode); + } + + @Builder + flashButton(flashModes: camera.FlashMode[]) { + SymbolGlyph(this.getFlashItem(this.flashMode)?.image) + .fontSize(22) + .fontColor([Color.White]) + .bindMenu(flashModes.map(mode => { + const flashItem = this.getFlashItem(mode)!; + const menuElement: MenuElement = { + value: flashItem.title, + action: () => { + this.flashMode = mode!; + this.cameraManager.setFlashMode(mode); + showToast(this.getUIContext(), flashItem.toast); + } + }; + return menuElement; + })) + } + + @Builder + videoTimerBuilder() { + if (this.videoManager.isRecording()) { + Row({ space: 5 }) { + SymbolGlyph(this.videoManager.state === AVRecorderState.STARTED ? $r('sys.symbol.record_circle') : + $r('sys.symbol.pause')) + .fontSize(22) + .fontColor(this.videoManager.state === AVRecorderState.STARTED ? [Color.Red, 'rgba(255,0,0,0)'] : + [Color.White]) + .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR) + Text(this.videoManager.state === AVRecorderState.STARTED ? $r('app.string.recording') : $r('app.string.paused')) + .fontColor(Color.White) + .fontSize(12) + } + } + } + + @Builder + livePhotoButton() { + SymbolGlyph(this.isLivePhoto + ? $r('sys.symbol.livephoto') + : $r('sys.symbol.livephoto_slash')) + .onClick(() => { + this.isLivePhoto = !this.isLivePhoto; + this.photoManager.enableMovingPhoto(this.isLivePhoto); + const message = this.isLivePhoto ? $r('app.string.moving_open') : $r('app.string.moving_close'); + showToast(this.getUIContext(), message); + }) + .fontSize(22) + .fontColor([Color.White]) + } + + @Builder + rateButton() { + if (this.previewVM.rates) { + Text(`${this.previewVM.currentRate} fps`) + .fontColor(Color.White) + .fontSize(16) + .bindMenu(this.previewVM.rates.map(rate => { + const menuElement: MenuElement = { + value: rate + 'fps', + action: () => { + this.previewManager.setFrameRate(rate, rate); + this.previewVM.currentRate = rate; + showToast(this.getUIContext(), $r('app.string.preview_rate', rate + 'fps')); + } + }; + return menuElement; + })) + } + } + + @Builder + delayPhotoButton(photoDelayTimeElements: MenuElement[]) { + if (this.photoDelayTime) { + Text(`${this.photoDelayTime}s`) + .fontColor(Color.White) + .fontSize(16) + .bindMenu(photoDelayTimeElements) + } else { + SymbolGlyph($r('sys.symbol.time_lapse')) + .fontSize(22) + .fontColor([Color.White]) + .bindMenu(photoDelayTimeElements) + } + } + + getPhotoDelayTimeElements(): MenuElement[] { + const menuTextMap: Map = new Map([ + ['off', 0], + ['2s', 2], + ['5s', 5], + ['10s', 10] + ]) + return Array.from(menuTextMap.keys()).map(text => { + const time = menuTextMap.get(text); + const menuElement: MenuElement = { + value: text, + action: () => { + this.photoDelayTime = time!; + const message = time ? $r('app.string.delay', text) : $r('app.string.delay_close'); + showToast(this.getUIContext(), message); + } + }; + return menuElement; + }); + } + + @Builder + stabilizationButton() { + SymbolGlyph(this.isStabilizationEnabled + ? $r('sys.symbol.motion_stabilization') + : $r('sys.symbol.motion_stabilization_slash')) + .onClick(() => { + this.isStabilizationEnabled = !this.isStabilizationEnabled; + this.cameraManager.setVideoStabilizationMode(camera.VideoStabilizationMode.AUTO); + const message = this.isStabilizationEnabled ? $r('app.string.stabilization_enable') : $r('app.string.stabilization_disabled'); + // showToast(this.getUIContext(), message); + }) + .fontSize(22) + .fontColor([Color.White]) + } + + @Builder + togglePhotoModeButton() { + SymbolGlyph(this.isSinglePhoto + ? $r('sys.symbol.picture') + : $r('sys.symbol.picture_on_square_1')) + .onClick(() => { + this.isSinglePhoto = !this.isSinglePhoto; + this.photoManager.setPhotoOutputCallback(this.isSinglePhoto); + if (this.isSinglePhoto) { + this.isLivePhoto = false; + } + this.photoManager.enableMovingPhoto(this.isLivePhoto); + const message = this.isSinglePhoto ? $r('app.string.photo_single') : $r('app.string.photo_double'); + showToast(this.getUIContext(), message); + }) + .fontSize(22) + .fontColor([Color.White]) + } + + build() { + Row() { + if (this.previewVM.isPhotoMode()) { + //this.rateButton() + this.flashButton(this.photoFlashModes) + //this.delayPhotoButton(this.getPhotoDelayTimeElements()) + // if (!this.isSinglePhoto) { + // this.livePhotoButton() + // } + //this.togglePhotoModeButton() + } else { + if (this.videoManager.isRecording()) { + //this.videoTimerBuilder() + } else { + //this.rateButton() + this.flashButton(this.videoFlashModes) + //this.stabilizationButton() + } + } + } + .id('settingButtonsView') + .width('100%') + .margin({ top: 50 }) + .justifyContent(FlexAlign.SpaceAround) + .alignRules({ top: { anchor: '__container__', align: VerticalAlign.Top } }) + } +} + +export default SettingButtonsView; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/ets/views/ZoomButtonsView.ets b/CameraKit/DualPreview/entry/src/main/ets/views/ZoomButtonsView.ets new file mode 100644 index 000000000..ccdef4750 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/ets/views/ZoomButtonsView.ets @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { CameraManager } from 'camera'; +import { findRangeIndex, toFixed } from '../utils/CommonUtil'; + +@Component +struct ZoomButtonsView { + @Prop @Require zooms: number[]; + @Prop @Require zoomRange: number[] = []; + @Link currentZoom: number; + @Require cameraManager: CameraManager; + + getZoomButtonText(zoom: number, index: number): string { + const minZoom = this.zoomRange[0]; + const currentZoomIndex: number = findRangeIndex(this.currentZoom, this.zooms); + if (index === 0 && (this.currentZoom === minZoom || currentZoomIndex !== index)) { + return 'w'; + } + if (this.currentZoom === zoom || currentZoomIndex !== index) { + return `${zoom}x`; + } + return `${toFixed(this.currentZoom, 1)}x`; + } + + getZoomButtonBorderWidth(index: number): number { + const currentZoomIndex: number = findRangeIndex(this.currentZoom, this.zooms); + return currentZoomIndex === index ? 1.5 : 0; + } + + build() { + Row({ space: 15 }) { + ForEach(this.zooms, (zoom: number, index: number) => { + Text(this.getZoomButtonText(zoom, index)) + .width(36) + .height(36) + .fontColor(Color.White) + .fontSize(10) + .fontWeight(FontWeight.Bold) + .borderWidth(this.getZoomButtonBorderWidth(index)) + .borderColor(Color.White) + .borderRadius('50%') + .textAlign(TextAlign.Center) + .onClick(() => { + this.cameraManager.setSmoothZoom(zoom) + this.currentZoom = zoom + }) + }, (zoom: number) => zoom.toString()) + } + .margin({ bottom: 40 }) + .alignRules({ + bottom: { anchor: 'modeButtonsView', align: VerticalAlign.Top }, + middle: { anchor: 'modeButtonsView', align: HorizontalAlign.Center } + }) + } +} +export default ZoomButtonsView; \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/module.json5 b/CameraKit/DualPreview/entry/src/main/module.json5 new file mode 100644 index 000000000..01eaa8b29 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/module.json5 @@ -0,0 +1,110 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "phone", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + // [Start permissions] + // [Start permissions_acc] + "requestPermissions": [ + // [StartExclude permissions_acc] + { + "name": "ohos.permission.CAMERA", + "reason": "$string:permission_CAMERA", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + // [StartExclude permissions] + { + "name": "ohos.permission.MICROPHONE", + "reason": "$string:reason_microphone", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason": "$string:reason_media_location", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.WRITE_IMAGEVIDEO", + "reason": "$string:reason_write_imagevideo", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.READ_IMAGEVIDEO", + "reason": "$string:reason_read_imagevideo", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + }, + }, + { + "name": "ohos.permission.APPROXIMATELY_LOCATION", + "reason": "$string:permission_LOCATION", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + // [EndExclude permissions_acc] + { + "name": "ohos.permission.ACCELEROMETER", + "reason": "$string:permission_SENSOR", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + } + // [EndExclude permissions] + ] + // [End permissions] + // [End permissions_acc] + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/element/color.json b/CameraKit/DualPreview/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/element/float.json b/CameraKit/DualPreview/entry/src/main/resources/base/element/float.json new file mode 100644 index 000000000..33ea22304 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/base/element/float.json @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/element/string.json b/CameraKit/DualPreview/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..32d0de3f6 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/base/element/string.json @@ -0,0 +1,140 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "CustomCamera" + }, + { + "name": "permission_CAMERA", + "value": "For camera operations" + }, + { + "name": "reason_microphone", + "value": "For camera video recording" + }, + { + "name": "reason_media_location", + "value": "For scenarios where the camera retrieves media information" + }, + { + "name": "reason_write_imagevideo", + "value": "For reading and writing media files with the camera" + }, + { + "name": "reason_read_imagevideo", + "value": "For camera media file read/write" + }, + { + "name": "permission_SENSOR", + "value": "For sensors" + }, + { + "name": "recording", + "value": "Recording in progress" + }, + { + "name": "paused", + "value": "Paused" + }, + { + "name": "wakeup_text", + "value": "Tap the screen to wake up the camera" + }, + { + "name": "photo", + "value": "Photo" + }, + { + "name": "video", + "value": "Video" + }, + { + "name": "preview_rate", + "value": "Preview frame rate%d" + }, + { + "name": "delay", + "value": "Time-lapse%d" + }, + { + "name": "delay_close", + "value": "Off time-lapse" + }, + { + "name": "moving_open", + "value": "Live photo mode is on" + }, + { + "name": "moving_close", + "value": "Live photo mode is off" + }, + { + "name": "photo_single", + "value": "Single-segment shooting" + }, + { + "name": "photo_double", + "value": "Dual-segment shooting" + }, + { + "name": "stabilization_enable", + "value": "Video stabilization is on" + }, + { + "name": "stabilization_disabled", + "value": "Video stabilization is off" + }, + { + "name": "grid_line_open", + "value": "Grid lines are enabled" + }, + { + "name": "grid_line_close", + "value": "Grid lines are disabled" + }, + { + "name": "level_open", + "value": "The spirit level is enabled" + }, + { + "name": "level_close", + "value": "The spirit level is disabled" + }, + { + "name": "flash_auto", + "value": "Flash is in auto mode" + }, + { + "name": "flash_close", + "value": "The flash is off" + }, + { + "name": "flash_always", + "value": "The flash is always on" + }, + { + "name": "flash_open", + "value": "The flash is on" + }, + { + "name": "preview_image_open", + "value": "Dual-channel preview has been enabled" + }, + { + "name": "preview_image_close", + "value": "Dual-channel preview has been disabled" + }, + { + "name": "permission_LOCATION", + "value": "For location" + } + ] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/media/background.png b/CameraKit/DualPreview/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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 literal 0 HcmV?d00001 diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/media/flash_2s.png b/CameraKit/DualPreview/entry/src/main/resources/base/media/flash_2s.png new file mode 100644 index 0000000000000000000000000000000000000000..183c0ec5c8b99261dbf6130373cb60b08534f672 GIT binary patch literal 1557 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 literal 0 HcmV?d00001 diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/media/focus_box.png b/CameraKit/DualPreview/entry/src/main/resources/base/media/focus_box.png new file mode 100644 index 0000000000000000000000000000000000000000..7a5d9b649e08465de0e8e8883a9a37d7c3bb9f36 GIT binary patch literal 991 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/media/toggle_position.png b/CameraKit/DualPreview/entry/src/main/resources/base/media/toggle_position.png new file mode 100644 index 0000000000000000000000000000000000000000..0843141ece2b81e910903dcd2b153f37ee4bf612 GIT binary patch literal 2908 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 literal 0 HcmV?d00001 diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/profile/backup_config.json b/CameraKit/DualPreview/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/resources/base/profile/main_pages.json b/CameraKit/DualPreview/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..1898d94f5 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/CameraKit/DualPreview/entry/src/main/resources/dark/element/color.json b/CameraKit/DualPreview/entry/src/main/resources/dark/element/color.json new file mode 100644 index 000000000..79b11c274 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/resources/en_US/element/string.json b/CameraKit/DualPreview/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 000000000..84573dc11 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,140 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "CustomCamera" + }, + { + "name": "permission_CAMERA", + "value": "For camera operations" + }, + { + "name": "reason_microphone", + "value": "For camera video recording" + }, + { + "name": "reason_media_location", + "value": "For scenarios where the camera retrieves media information" + }, + { + "name": "reason_write_imagevideo", + "value": "For reading and writing media files with the camera" + }, + { + "name": "reason_read_imagevideo", + "value": "For camera media file read/write" + }, + { + "name": "permission_SENSOR", + "value": "For sensors" + }, + { + "name": "recording", + "value": "Recording in progress" + }, + { + "name": "paused", + "value": "Paused" + }, + { + "name": "wakeup_text", + "value": "Tap the screen to wake up the camera" + }, + { + "name": "photo", + "value": "Photo" + }, + { + "name": "video", + "value": "Video" + }, + { + "name": "preview_rate", + "value": "Preview frame rate%d" + }, + { + "name": "delay", + "value": "Time-lapse%d" + }, + { + "name": "delay_close", + "value": "Off time-lapse" + }, + { + "name": "moving_open", + "value": "Live photo mode is on" + }, + { + "name": "moving_close", + "value": "Live photo mode is off" + }, + { + "name": "photo_single", + "value": "Single-segment shooting" + }, + { + "name": "photo_double", + "value": "Dual-segment shooting" + }, + { + "name": "stabilization_enable", + "value": "Video stabilization is on" + }, + { + "name": "stabilization_disabled", + "value": "Video stabilization is off" + }, + { + "name": "grid_line_open", + "value": "Grid lines are enabled." + }, + { + "name": "grid_line_close", + "value": "Grid lines are disabled." + }, + { + "name": "level_open", + "value": "The spirit level is enabled" + }, + { + "name": "level_close", + "value": "The spirit level is disabled" + }, + { + "name": "flash_auto", + "value": "Flash is in auto mode" + }, + { + "name": "flash_close", + "value": "The flash is off." + }, + { + "name": "flash_always", + "value": "The flash is always on" + }, + { + "name": "flash_open", + "value": "The flash is on" + }, + { + "name": "preview_image_open", + "value": "Dual-channel preview has been enabled" + }, + { + "name": "preview_image_close", + "value": "Dual-channel preview has been disabled" + }, + { + "name": "permission_LOCATION", + "value": "For location" + } + ] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/main/resources/zh_CN/element/string.json b/CameraKit/DualPreview/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 000000000..fc4e395ef --- /dev/null +++ b/CameraKit/DualPreview/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,140 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "CameraKitSample" + }, + { + "name": "permission_CAMERA", + "value": "用于相机操作" + }, + { + "name": "reason_microphone", + "value": "用于相机录像场景" + }, + { + "name": "reason_media_location", + "value": "用于相机获取媒体信息场景" + }, + { + "name": "reason_write_imagevideo", + "value": "用于相机读写媒体文件" + }, + { + "name": "reason_read_imagevideo", + "value": "用于相机读写媒体文件" + }, + { + "name": "permission_SENSOR", + "value": "用于传感器" + }, + { + "name": "recording", + "value": "录制中" + }, + { + "name": "paused", + "value": "已暂停" + }, + { + "name": "wakeup_text", + "value": "点击屏幕唤醒相机" + }, + { + "name": "photo", + "value": "拍照" + }, + { + "name": "video", + "value": "录像" + }, + { + "name": "preview_rate", + "value": "预览帧率%d" + }, + { + "name": "delay", + "value": "延时拍照%d" + }, + { + "name": "delay_close", + "value": "延时拍照关闭" + }, + { + "name": "moving_open", + "value": "动态拍照已开启" + }, + { + "name": "moving_close", + "value": "动态拍照已关闭" + }, + { + "name": "photo_single", + "value": "单段拍照" + }, + { + "name": "photo_double", + "value": "双段拍照" + }, + { + "name": "stabilization_enable", + "value": "录像防抖已开启" + }, + { + "name": "stabilization_disabled", + "value": "录像防抖已关闭" + }, + { + "name": "grid_line_open", + "value": "网格线已开启" + }, + { + "name": "grid_line_close", + "value": "网格线已关闭" + }, + { + "name": "level_open", + "value": "水平仪已开启" + }, + { + "name": "level_close", + "value": "水平仪已关闭" + }, + { + "name": "flash_auto", + "value": "闪关灯已自动" + }, + { + "name": "flash_close", + "value": "闪光灯已关闭" + }, + { + "name": "flash_always", + "value": "闪光灯已常亮" + }, + { + "name": "flash_open", + "value": "闪光灯已开启" + }, + { + "name": "preview_image_open", + "value": "双路预览已开启" + }, + { + "name": "preview_image_close", + "value": "双路预览已关闭" + }, + { + "name": "permission_LOCATION", + "value": "用于地理位置" + } + ] +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/ohosTest/ets/test/Ability.test.ets b/CameraKit/DualPreview/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 000000000..b5f95e765 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import Base from '@ohos.base'; +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; +import { PermissionRequestResult } from '@ohos.abilityAccessCtrl'; +import { Permissions } from '@kit.AbilityKit'; +import { Driver, ON, MatchPattern, Component } from '@ohos.UiTest'; +import fs from '@ohos.file.fs'; +import Want from '@ohos.app.ability.Want'; + +const TAG = 'abilityTest'; +const domain: number = 0x0000; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('captureTest', 0, async () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + try { + let want: Want = { + bundleName: 'com.example.CameraKit', + abilityName: 'EntryAbility' + }; + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + abilityDelegator.startAbility(want, (err: Base.BusinessError) => { + hilog.info(domain, TAG, 'StartAbility get err ' + JSON.stringify(err)); + // expect(err).assertNull(); + }) + + console.info('%{public}s', ' beforeAll 4'); + let driver = Driver.create(); + await driver.delayMs(1000); + let permissionButton: Component | null = null; + for (let i = 0; i < 3; i++) { + permissionButton = await driver.waitForComponent(ON.text('允许', MatchPattern.EQUALS), 1000); + console.info('captureTest btn1' + JSON.stringify(permissionButton)); + if (permissionButton != null) { + await permissionButton.click(); + console.info('captureTest after permissionButton.click '); + await driver.delayMs(300); // 等待下一个权限请求弹窗出现 + } + } + permissionButton = await driver.findComponent(ON.text('仅使用期间允许', MatchPattern.EQUALS)); + await permissionButton.click(); + await driver.delayMs(300); // 等待下一个权限请求弹窗出现 + await driver.delayMs(300); + console.info('%{public}s', ' beforeAll 6'); + let btn1 = await driver.findComponent(ON.text('拍照', MatchPattern.EQUALS)); + console.info('captureTest btn1' + JSON.stringify(btn1)); + await btn1.click(); + await driver.delayMs(300); + console.info('%{public}s', ' beforeAll 8'); + let btn2 = await driver.findComponent(ON.type('Column').id('Capture')); + console.info('captureTest btn2' + JSON.stringify(btn2)); + await btn2.click(); + console.info('%{public}s', ' beforeAll 10'); + await driver.delayMs(3000); + expect(btn2 == null).assertFalse(); + await driver.delayMs(1000); + } catch (err) { + console.info(' captureTest failed, err: ' + err); + } + }) + + it('recordTest', 0, async () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + try { + let driver = Driver.create(); + await driver.delayMs(300); + let btn1 = await driver.findComponent(ON.text('录像', MatchPattern.EQUALS)); + console.info('recordTest btn1' + JSON.stringify(btn1)); + await btn1.click(); + await driver.delayMs(300); + console.info('%{public}s', ' recordTest 8'); + let btn2 = await driver.findComponent(ON.type('Column').id('VideoStartButton')); + console.info('recordTest btn2' + JSON.stringify(btn2)); + await btn2.click(); + console.info('%{public}s', ' recordTest 10'); + await driver.delayMs(3000); + let btn3 = await driver.findComponent(ON.type('Column').id('VideoStopButton')); + console.info('recordTest btn3' + JSON.stringify(btn3)); + expect(btn3 == null).assertFalse(); + await btn3.click(); + await driver.delayMs(500); + let btn4 = await driver.findComponent(ON.type('Image').id('Thumbnail')); + console.info('recordTest btn4' + JSON.stringify(btn4)); + await btn4.click(); + await driver.delayMs(500); + } catch (err) { + console.info(' recordTest failed, err: ' + err); + } + }) + }) +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/ohosTest/ets/test/List.test.ets b/CameraKit/DualPreview/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..6068cbde6 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,6 @@ +import abilityTest from './Ability.test'; + + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/ohosTest/module.json5 b/CameraKit/DualPreview/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..690268727 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/ohosTest/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/CameraKit/DualPreview/entry/src/test/List.test.ets b/CameraKit/DualPreview/entry/src/test/List.test.ets new file mode 100644 index 000000000..bb5b5c373 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/test/List.test.ets @@ -0,0 +1,5 @@ +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/CameraKit/DualPreview/entry/src/test/LocalUnit.test.ets b/CameraKit/DualPreview/entry/src/test/LocalUnit.test.ets new file mode 100644 index 000000000..165fc1615 --- /dev/null +++ b/CameraKit/DualPreview/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,33 @@ +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/CameraKit/DualPreview/hvigor/hvigor-config.json5 b/CameraKit/DualPreview/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..5bebc9755 --- /dev/null +++ b/CameraKit/DualPreview/hvigor/hvigor-config.json5 @@ -0,0 +1,22 @@ +{ + "modelVersion": "5.0.5", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/CameraKit/DualPreview/hvigorfile.ts b/CameraKit/DualPreview/hvigorfile.ts new file mode 100644 index 000000000..f3cb9f1a8 --- /dev/null +++ b/CameraKit/DualPreview/hvigorfile.ts @@ -0,0 +1,6 @@ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/CameraKit/DualPreview/oh-package-lock.json5 b/CameraKit/DualPreview/oh-package-lock.json5 new file mode 100644 index 000000000..9f659f79c --- /dev/null +++ b/CameraKit/DualPreview/oh-package-lock.json5 @@ -0,0 +1,20 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hypium@1.0.18": "@ohos/hypium@1.0.18" + }, + "packages": { + "@ohos/hypium@1.0.18": { + "name": "@ohos/hypium", + "version": "1.0.18", + "integrity": "sha512-RGe/iLGdeywdQilMWZsHKUoiE9OJ+9QxQsorF92R2ImLNVHVhbpSePNITGpW7TnvLgOIP/jscOqfIOhk6X7XRQ==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.18.har", + "registryType": "ohpm" + } + } +} \ No newline at end of file diff --git a/CameraKit/DualPreview/oh-package.json5 b/CameraKit/DualPreview/oh-package.json5 new file mode 100644 index 000000000..114bdf65f --- /dev/null +++ b/CameraKit/DualPreview/oh-package.json5 @@ -0,0 +1,9 @@ +{ + "modelVersion": "5.0.5", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.18" + } +} diff --git a/CameraKit/DualPreview/screenshots/devices/camera.PNG b/CameraKit/DualPreview/screenshots/devices/camera.PNG new file mode 100644 index 0000000000000000000000000000000000000000..d8a7933d3c382c2286e357c446c662ccde1cbd7e GIT binary patch literal 417778 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�^WE0I{aJSQ2P*(TzxwDQ_WP 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�V?}vwy9cKVAvI&w#pxY|(;GNbMgF@AVbAHF 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 { + if (err && err.message) { + Logger.error(TAG, 'cameraStatus with errorMessage = ' + err.message); + return; + } + Logger.info(TAG, `cameraStatusInfo: camera is ${statusInfo.camera.cameraId}, status is ${statusInfo.status}`); + }); + } + + getCameraManager() { + return this.cameraManager; + } + + async start( + xComponentSurfaceId: string, + cameraPosition: camera.CameraPosition, + sceneMode: camera.SceneMode, + getProfile: (cameraOrientation: number, picFormat: camera.CameraFormat) => camera.Profile + ) { + try { + const device = this.getCameraDevice(cameraPosition); + if (!device) { + return; + } + // [Start cameraInput] + this.cameraInput = this.cameraManager.createCameraInput(device); + await this.cameraInput.open(); + // [End cameraInput] + // [Start session] + const session = this.cameraManager.createSession(sceneMode); + session.beginConfig(); + session.addInput(this.cameraInput); + // [StartExclude session] + const config: CreateOutputConfig = { + cameraManager: this.cameraManager, + device, + sceneMode, + profile: getProfile(device.cameraOrientation, camera.CameraFormat.CAMERA_FORMAT_YUV_420_SP), + surfaceId: xComponentSurfaceId + }; + // [EndExclude session] + for (const outputManager of this.outputManagers) { + if (outputManager.isActive) { + const output = await outputManager.createOutput(config); + session.addOutput(output); + } + }; + await session.commitConfig(); + for (const outputManager of this.outputManagers) { + if (outputManager.isActive && outputManager instanceof PreviewManager) { + outputManager.setRotate(); + display.off('change'); + display.on('change', () => { + outputManager.setRotate(); + }); + } + }; + await session.start(); + // [End session] + this.session = session as (camera.PhotoSession | camera.VideoSession); + this.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); + this.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_AUTO); + } catch (e) { + Logger.error(TAG, `Failed to start camera session. Cause ${JSON.stringify(e)}`); + } + } + + async refreshOutput(oldOutput: camera.CameraOutput, newOutput: camera.CameraOutput) { + await this.session?.stop(); + this.session?.beginConfig(); + this.session?.removeOutput(oldOutput); + this.session?.addOutput(newOutput); + await this.session?.commitConfig(); + await this.session?.start(); + } + + // [Start release] + async release() { + display.off('change'); + await this.session?.stop(); + for (const outputManager of this.outputManagers) { + if (outputManager.isActive) { + await outputManager.release(); + } + }; + await this.cameraInput?.close(); + await this.session?.release(); + } + // [End release] + + // [Start getCameraDevice] + getCameraDevice(cameraPosition: camera.CameraPosition) { + const cameraDevices = this.cameraManager.getSupportedCameras(); + const device = cameraDevices?.find(device => device.cameraPosition === cameraPosition) || cameraDevices[0]; + if (!device) { + Logger.error(TAG, `Failed to get camera device. cameraPosition: ${cameraPosition}}`); + } + return device; + } + // [End getCameraDevice] + + // [Start getZoomRange] + getZoomRange() { + return this.session!.getZoomRatioRange(); + } + // [End getZoomRange] + + // [Start setFocusMode] + setFocusMode(focusMode: camera.FocusMode) { + try { + const isSupported = this.session?.isFocusModeSupported(focusMode); + if (!isSupported) { + Logger.error(TAG, `setFocusMode error: focus mode ${focusMode} is not supported`); + return; + } + this.session?.setFocusMode(focusMode); + } catch(e) { + Logger.error(TAG, 'setFocusMode error ' + JSON.stringify(e)); + } + } + // [End setFocusMode] + + // [Start setFocusPoint] + setFocusPoint(point: camera.Point) { + try { + this.session?.setFocusPoint(point); + } catch(e) { + Logger.error(TAG, 'setFocusPoint error ' + JSON.stringify(e)); + } + } + // [End setFocusPoint] + + // [Start setExposureMode] + setExposureMode(exposureMode: camera.ExposureMode) { + try { + const isSupported = this.session?.isExposureModeSupported(exposureMode); + if (!isSupported) { + Logger.error(TAG, `setExposureMode error: focus mode ${exposureMode} is not supported`); + return; + } + this.session?.setExposureMode(exposureMode); + } catch(e) { + Logger.error(TAG, 'setExposureMode error ' + JSON.stringify(e)); + } + } + // [End setExposureMode] + + // [Start setMeteringPoint] + setMeteringPoint(point: camera.Point) { + try { + this.session?.setMeteringPoint(point); + } catch(e) { + Logger.error(TAG, 'setMeteringPoint error ' + JSON.stringify(e)); + } + } + // [End setMeteringPoint] + + setZoomRatio(zoom: number) { + try { + this.session?.setZoomRatio(zoom); + } catch(e) { + Logger.error(TAG, 'setZoomRatio error ' + JSON.stringify(e)); + } + } + + // [Start setSmoothZoom] + setSmoothZoom(zoom: number) { + try { + this.session?.setSmoothZoom(zoom); + } catch(e) { + Logger.error(TAG, 'setSmoothZoom error ' + JSON.stringify(e)); + } + } + // [End setSmoothZoom] + + // [Start setFlashMode] + setFlashMode(flashMode: camera.FlashMode) { + try { + const isSupported = this.session?.isFlashModeSupported(flashMode); + if (!isSupported) { + Logger.error(TAG, `setFlashMode error: flash mode ${flashMode} is not supported`); + return; + } + this.session?.setFlashMode(flashMode); + } catch(e) { + Logger.error(TAG, 'setFlashMode error ' + JSON.stringify(e)); + } + } + // [End setFlashMode] + + setVideoStabilizationMode(stabilizationMode: camera.VideoStabilizationMode) { + try { + const session = this.session as camera.VideoSession; + const isSupported: boolean = session.isVideoStabilizationModeSupported(stabilizationMode); + if (isSupported) { + session.setVideoStabilizationMode(stabilizationMode); + } else { + Logger.error(TAG, 'stabilizationMode is not supported: ' + JSON.stringify(stabilizationMode)); + } + } catch (e) { + Logger.error(TAG, 'setVideoStabilizationMode error ' + JSON.stringify(e)); + } + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets new file mode 100644 index 000000000..83b5a5537 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/ImageReceiverManager.ets @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { image } from '@kit.ImageKit'; +import { camera } from '@kit.CameraKit'; +import { display } from '@kit.ArkUI'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG = 'ImageReceiverManager'; + +export class ImageReceiverManager implements OutputManager { + output?: camera.PreviewOutput; + isActive: boolean = true; + callback: (px: PixelMap) => void; + private position: camera.CameraPosition = camera.CameraPosition.CAMERA_POSITION_BACK; + + constructor(cb: (px: PixelMap) => void) { + this.callback = cb; + } + + async createOutput(config: CreateOutputConfig) { + const cameraOutputCap = config.cameraManager.getSupportedOutputCapability(config.device, config.sceneMode); + const displayRatio = config.profile.size.width / config.profile.size.height; + const profileWidth = config.profile.size.width; + const previewProfile = cameraOutputCap.previewProfiles + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return pf.format === config.profile.format + && Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE; + }); + if (!previewProfile) { + Logger.error(TAG, 'Failed to get preview profile'); + return; + } + const surfaceId = await this.init(config.profile.size); + this.output = config.cameraManager.createPreviewOutput(previewProfile, surfaceId); + this.position = config.device.cameraPosition; + return this.output; + } + + async release() { + await this.output?.release(); + this.output = undefined; + } + + // [Start init] + async init(size: Size, format = image.ImageFormat.JPEG, capacity = 8) { + const receiver = image.createImageReceiver(size, format, capacity); + const surfaceId = await receiver.getReceivingSurfaceId(); + this.onImageArrival(receiver); + return surfaceId; + } + // [End init] + + // [Start getPixelMap] + async getPixelMap(imgComponent: image.Component, width: number, height: number, stride: number) { + if (stride === width) { + return await image.createPixelMap(imgComponent.byteBuffer, { + size: { height: height, width: width }, + srcPixelFormat: image.PixelMapFormat.NV21, + }); + } + const dstBufferSize = width * height * 1.5; + const dstArr = new Uint8Array(dstBufferSize); + for (let j = 0; j < height * 1.5; j++) { + const srcBuf = new Uint8Array(imgComponent.byteBuffer, j * stride, width); + dstArr.set(srcBuf, j * width); + } + return await image.createPixelMap(dstArr.buffer, { + size: { height: height, width: width }, + srcPixelFormat: image.PixelMapFormat.NV21, + }); + } + // [End getPixelMap] + + // [Start onImageArrival] + onImageArrival(receiver: image.ImageReceiver): void { + receiver.on('imageArrival', () => { + Logger.info(TAG, 'image arrival'); + receiver.readNextImage((err: BusinessError, nextImage: image.Image) => { + if (err || nextImage === undefined) { + Logger.error(TAG, 'readNextImage failed'); + return; + } + // [Start release] + // [Start nextImage] + nextImage.getComponent(image.ComponentType.JPEG, async (err: BusinessError, imgComponent: image.Component) => { + // [StartExclude release] + if (err || imgComponent === undefined) { + Logger.error(TAG, 'getComponent failed'); + } + if (imgComponent.byteBuffer) { + // [StartExclude onImageArrival] + const width = nextImage.size.width; + const height = nextImage.size.height; + const stride = imgComponent.rowStride; + Logger.info(TAG, `getComponent with width:${width} height:${height} stride:${stride}`); + const pixelMap = await this.getPixelMap(imgComponent, width, height, stride); + const displayRotation = display.getDefaultDisplaySync().rotation * camera.ImageRotation.ROTATION_90; + const rotation = this.output!.getPreviewRotation(displayRotation); + if (this.position === camera.CameraPosition.CAMERA_POSITION_FRONT) { + if (displayRotation === 90 || displayRotation === 270) { + await pixelMap.rotate((rotation + 180) % 360); + } else { + await pixelMap.rotate(rotation); + } + await pixelMap.flip(true, false); + } else { + await pixelMap.rotate(rotation); + } + this.callback(pixelMap); + // [EndExclude onImageArrival] + } else { + Logger.error(TAG, 'byteBuffer is null'); + } + // [EndExclude release] + // [StartExclude nextImage] + // [StartExclude onImageArrival] + nextImage.release().then(() => {Logger.info(TAG, 'image release done');}).catch((error: BusinessError) => { + Logger.error(TAG, `Release failed! Code ${error.code},message is ${error.message}`); + }); + Logger.info(TAG, 'image process done'); + // [EndExclude onImageArrival] + // [EndExclude nextImage] + }); + // [End release] + // [End nextImage] + }); + }); + } + // [End onImageArrival] +} diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/OutputManager.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/OutputManager.ets new file mode 100644 index 000000000..c476ae134 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/OutputManager.ets @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; + +export interface CreateOutputConfig { + cameraManager: camera.CameraManager; + device: camera.CameraDevice; + profile: camera.Profile; + sceneMode?: camera.SceneMode; + surfaceId?: string; +} + +// [Start OutputManager] +export default interface OutputManager { + output?: camera.CameraOutput; + isActive: boolean; + createOutput: (config: CreateOutputConfig) => Promise; + release: () => Promise; +} +// [End OutputManager] \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PhotoManager.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PhotoManager.ets new file mode 100644 index 000000000..88401e672 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PhotoManager.ets @@ -0,0 +1,396 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { sensor } from '@kit.SensorServiceKit'; +import { Decimal } from '@kit.ArkTS'; +import { image } from '@kit.ImageKit'; +import { colorSpaceManager } from '@kit.ArkGraphics2D'; +import { geoLocationManager } from '@kit.LocationKit'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG_LOG = 'PhotoManager'; + +export class PhotoManager implements OutputManager { + output?: camera.PhotoOutput; + isActive: boolean = true; + context: Context; + isSingle: boolean = false; + location: geoLocationManager.Location | null = null; + private callback: (pixelMap: image.PixelMap, url: string) => void = () => { + }; + + constructor(context: Context, isActive = true, isSingle: boolean) { + this.context = context; + this.isActive = isActive; + this.isSingle = isSingle; + } + + setIsActive(isActive: boolean) { + this.isActive = isActive; + } + + setCallback(callback: (pixelMap: image.PixelMap, url: string) => void) { + this.callback = callback; + } + + async createOutput(config: CreateOutputConfig) { + let cameraPhotoOutput: camera.PhotoOutput | undefined = undefined; + cameraPhotoOutput = this.createPhotoOutput(config.cameraManager, config.device, config.profile); + if (cameraPhotoOutput) { + this.output = cameraPhotoOutput; + this.setPhotoOutputCallback(this.isSingle); + } + return cameraPhotoOutput; + } + + // [Start create_photo_output] + public createPhotoOutput(cameraManager: camera.CameraManager, cameraDevice: camera.CameraDevice, + profile: camera.Profile) { + let cameraPhotoOutput: camera.PhotoOutput | undefined = undefined; + const cameraOutputCapability = + cameraManager.getSupportedOutputCapability(cameraDevice, camera.SceneMode.NORMAL_PHOTO); + let photoProfilesArray: camera.Profile[] | undefined = cameraOutputCapability?.photoProfiles; + if (photoProfilesArray?.length) { + try { + const displayRatio = profile.size.width / profile.size.height; + const profileWidth = profile.size.width; + const PhotoProfile = photoProfilesArray + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE && + pf.format === camera.CameraFormat.CAMERA_FORMAT_JPEG; + }); + if (!PhotoProfile) { + Logger.error(TAG_LOG, 'Failed to get photo profile'); + return; + } + cameraPhotoOutput = cameraManager.createPhotoOutput(PhotoProfile); + } catch (error) { + Logger.error(TAG_LOG, `Failed to createPhotoOutput. error: ${JSON.stringify(error)}`); + } + } + this.output = cameraPhotoOutput; + return cameraPhotoOutput; + } + + // [End create_photo_output] + + // [Start set_photo_cb_double] + async mediaLibSavePhoto(photoAsset: photoAccessHelper.PhotoAsset, + phAccessHelper: photoAccessHelper.PhotoAccessHelper): Promise { + try { + let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = + new photoAccessHelper.MediaAssetChangeRequest(photoAsset); + assetChangeRequest.saveCameraPhoto(); + await phAccessHelper.applyChanges(assetChangeRequest); + phAccessHelper.release(); + } catch (error) { + Logger.error(TAG_LOG, `apply saveCameraPhoto failed with error: ${error.code}, ${error.message}`); + } + } + + async mediaLibRequestBuffer(photoAsset: photoAccessHelper.PhotoAsset, context: Context, + callback: (pixelMap: image.PixelMap, url: string) => void) { + class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler { + onDataPrepared(data: ArrayBuffer) { + if (data === undefined) { + Logger.error(TAG_LOG, 'Error occurred when preparing data'); + return; + } + let imageSource = image.createImageSource(data); + imageSource.createPixelMap().then((pixelMap: image.PixelMap) => { + callback(pixelMap, photoAsset.uri); + }).catch((err: BusinessError) => { + Logger.error(TAG_LOG, `createPixelMap err:${err.code}`); + }) + } + } + + let requestOptions: photoAccessHelper.RequestOptions = { + deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, + } + const handler = new MediaDataHandler(); + await photoAccessHelper.MediaAssetManager.requestImageData(context, photoAsset, requestOptions, handler); + } + + public setPhotoOutputCbDouble(cameraPhotoOutput: camera.PhotoOutput) { + cameraPhotoOutput.on('photoAssetAvailable', + async (_err: BusinessError, photoAsset: photoAccessHelper.PhotoAsset): Promise => { + let accessHelper: photoAccessHelper.PhotoAccessHelper = + photoAccessHelper.getPhotoAccessHelper(this.context); + this.mediaLibSavePhoto(photoAsset, accessHelper); + this.mediaLibRequestBuffer(photoAsset, this.context, this.callback); + }); + } + + // [End set_photo_cb_double] + + // [Start set_photo_cb_single] + setPhotoOutputCbSingle(photoOutput: camera.PhotoOutput, context: Context) { + photoOutput.on('photoAvailable', (errCode: BusinessError, photo: camera.Photo): void => { + if (errCode || photo === undefined) { + Logger.error(TAG_LOG, 'getPhoto failed'); + return; + } + this.mediaLibSavePhotoSingle(context, photo.main) + }); + } + // [End set_photo_cb_single] + + // [Start save_photo_single] + mediaLibSavePhotoSingle(context: Context, imageObj: image.Image) { + imageObj.getComponent(image.ComponentType.JPEG, async (errCode: BusinessError, component: image.Component) => { + if (errCode || component === undefined) { + Logger.error(TAG_LOG, 'getComponent failed'); + return; + } + const buffer: ArrayBuffer = component.byteBuffer; + if (!buffer) { + Logger.error(TAG_LOG, 'byteBuffer is null'); + return; + } + let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; + let extension: string = 'jpg'; + let options: photoAccessHelper.CreateOptions = { + title: 'testPhoto' + } + let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = + photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension, options); + assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, buffer) + assetChangeRequest.saveCameraPhoto(); + let accessHelper: photoAccessHelper.PhotoAccessHelper = + photoAccessHelper.getPhotoAccessHelper(context); + await accessHelper.applyChanges(assetChangeRequest); + let imageSource = image.createImageSource(buffer); + let pixelmap = imageSource.createPixelMapSync(); + this.callback(pixelmap, assetChangeRequest.getAsset().uri); + accessHelper.release(); + imageObj.release(); + }); + } + // [End save_photo_single] + + setPhotoOutputCallback(isSingle: boolean) { + if (!this.output) { + return; + } + if (isSingle) { + this.output?.off('photoAssetAvailable'); + this.setPhotoOutputCbSingle(this.output, this.context); + } else { + this.output?.off('photoAvailable'); + this.setPhotoOutputCbDouble(this.output); + } + } + + preparePhoto(session: camera.Session, zoomRatio?: number, flashMode?: camera.FlashMode, + focusMode?: camera.FocusMode) { + const photoSession = session as camera.PhotoSession; + this.setPhotoFlash(photoSession, flashMode); + this.setPhotoFocus(photoSession, focusMode); + this.setPhotoZoomRatio(photoSession, zoomRatio || 0); + } + + // [Start set_color_space] + setColorSpaceBeforeCommitConfig(session: camera.PhotoSession, isHdr: boolean): void { + let colorSpace: colorSpaceManager.ColorSpace = + isHdr ? colorSpaceManager.ColorSpace.DISPLAY_P3 : colorSpaceManager.ColorSpace.SRGB; + let colorSpaces: Array = []; + try { + colorSpaces = session.getSupportedColorSpaces(); + } catch (error) { + Logger.error(TAG_LOG, `The getSupportedColorSpaces call failed. error code: ${error.code}`); + } + if (!colorSpaces.includes(colorSpace)) { + Logger.info(TAG_LOG, `colorSpace: ${colorSpace} is not support`); + return; + } + Logger.info(TAG_LOG, `setColorSpace: ${colorSpace}`); + session.setColorSpace(colorSpace); + try { + let activeColorSpace: colorSpaceManager.ColorSpace = session.getActiveColorSpace(); + Logger.info(TAG_LOG, `activeColorSpace: ${activeColorSpace}`); + } catch (error) { + Logger.error(TAG_LOG, `getActiveColorSpace Faild: ${error.message}`); + } + } + // [End set_color_space] + + public checkFlash(photoSession: camera.PhotoSession) { + let flashModeStatus: boolean = false; + if (photoSession.hasFlash()) { + flashModeStatus = photoSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); + } + return flashModeStatus; + } + + public setPhotoFlash(photoSession: camera.PhotoSession, flashMode?: camera.FlashMode) { + try { + if (this.checkFlash(photoSession)) { + photoSession.setFlashMode(flashMode || camera.FlashMode.FLASH_MODE_CLOSE); + } + } catch (error) { + Logger.error(TAG_LOG, `Failed to hasFlash. error: ${JSON.stringify(error)}`); + } + } + + public setPhotoFocus(photoSession: camera.PhotoSession, focusMode?: camera.FocusMode) { + const defaultMode = camera.FocusMode.FOCUS_MODE_CONTINUOUS_AUTO; + try { + let focusModeStatus: boolean = photoSession.isFocusModeSupported(focusMode || defaultMode); + if (focusModeStatus) { + photoSession.setFocusMode(focusMode || defaultMode); + } + } catch (error) { + Logger.error(TAG_LOG, + `Failed to check whether the focus mode is supported. error: ${JSON.stringify(error)}`); + } + } + + public setFocusPoint(photoSession: camera.PhotoSession, focusPoint: camera.Point): void { + try { + photoSession.setFocusPoint(focusPoint); + } catch (error) { + Logger.error(TAG_LOG, `The setFocusPoint call failed. error code: ${error.code}`); + } + } + + public setPhotoZoomRatio(photoSession: camera.PhotoSession, zoomRatio?: number) { + let photoZoomRatio = 0; + if (!zoomRatio) { + try { + let zoomRatioRange: number[] = photoSession.getZoomRatioRange(); + if (zoomRatioRange?.length) { + photoZoomRatio = zoomRatioRange[0]; + } + } catch (error) { + Logger.error(TAG_LOG, `Failed to get the zoom ratio range. error: ${JSON.stringify(error)}`); + } + } + photoSession.setZoomRatio(zoomRatio || photoZoomRatio); + } + + getSupportedColorSpaces(session: camera.PhotoSession): Array { + let colorSpaces: Array = []; + try { + colorSpaces = session.getSupportedColorSpaces(); + } catch (error) { + Logger.error(TAG_LOG,`The getSupportedColorSpaces call failed. error code: ${error.code}`); + } + return colorSpaces; + } + + // [Start get_photo_rotation] + getPhotoRotation(photoOutput: camera.PhotoOutput, deviceDegree: number): camera.ImageRotation { + let photoRotation: camera.ImageRotation = camera.ImageRotation.ROTATION_0; + try { + photoRotation = photoOutput.getPhotoRotation(deviceDegree); + } catch (error) { + Logger.error(TAG_LOG, `The photoOutput.getPhotoRotation call failed. error code: ${error.code}`); + } + return photoRotation; + } + + // [End get_photo_rotation] + + // [Start capture_photo] + public async capture(isFront: boolean) { + const degree = await this.getPhotoDegree(); + const rotation = this.getPhotoRotation(this.output!, degree); + let settings: camera.PhotoCaptureSetting = { + quality: camera.QualityLevel.QUALITY_LEVEL_HIGH, + rotation, + mirror: isFront + }; + this.output?.capture(settings, (err: BusinessError) => { + if (err) { + Logger.error(TAG_LOG, `Failed to capture the photo. error: ${JSON.stringify(err)}`); + return; + } + Logger.info(TAG_LOG, 'Callback invoked to indicate the photo capture request success.'); + }); + } + // [End capture_photo] + + private calculateDeviceDegree(x: number, y: number, z: number): number { + let deviceDegree: number = 0; + // Determine if the device is approaching a vertical position (perpendicular to the ground) + if ((x * x + y * y) * 3 < z * z) { + return deviceDegree; + } else { + // Calculate the inverse tangent value + let sd: Decimal = Decimal.atan2(y, -x) + // Convert radian values to angle values; + let sc: Decimal = Decimal.round(Number(sd) / Math.PI * 180); + // Adjust angle to be relative to vertical orientation + deviceDegree = 90 - Number(sc); + // Normalize angle to 0-360 degrees range + deviceDegree = deviceDegree >= 0 ? deviceDegree % 360 : deviceDegree % 360 + 360; + } + return deviceDegree; + } + + private getPhotoDegree() { + const promise: Promise = new Promise(resolve => { + sensor.once(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { + let degree = this.calculateDeviceDegree(data.x, data.y, data.z); + resolve(degree); + }); + }) + return promise; + } + + // [Start is_moving_photo] + public isMovingPhotoSupported(photoOutput: camera.PhotoOutput): boolean { + let isSupported: boolean = false; + try { + isSupported = photoOutput.isMovingPhotoSupported(); + } catch (error) { + Logger.error(TAG_LOG, `The isMovingPhotoSupported call failed. error code: ${error.code}`); + } + return isSupported; + } + + // [End is_moving_photo] + + // [Start enable_moving_photo] + public enableMovingPhoto(enabled: boolean): void { + try { + this.output?.enableMovingPhoto(enabled); + } catch (error) { + Logger.error(TAG_LOG, `The enableMovingPhoto call failed. error code: ${error.code}`); + } + } + + // [End enable_moving_photo] + + // [Start photo_release] + async release() { + await this.output?.release(); + if (this.isSingle) { + this.output?.off('photoAvailable'); + } else { + this.output?.off('photoAssetAvailable'); + } + this.output = undefined; + } + // [End photo_release] +} diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PreviewManager.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PreviewManager.ets new file mode 100644 index 000000000..0c8c5cfc8 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/PreviewManager.ets @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; +import { BusinessError } from '@kit.BasicServicesKit'; +import { Logger } from 'commons'; +import { display } from '@kit.ArkUI'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG_LOG = 'PreviewManager' + +export class PreviewManager implements OutputManager { + output?: camera.PreviewOutput; + isActive: boolean = true; + onPreviewStart: () => void = () => {}; + + constructor(onPreviewStart: () => void) { + this.onPreviewStart = onPreviewStart; + } + + // [Start createOutput] + async createOutput(config: CreateOutputConfig) { + const cameraOutputCap = config.cameraManager.getSupportedOutputCapability(config.device, config.sceneMode); + const displayRatio = config.profile.size.width / config.profile.size.height; + const profileWidth = config.profile.size.width; + const previewProfile = cameraOutputCap.previewProfiles + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return pf.format === config.profile.format + && Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE; + }); + if (!previewProfile) { + Logger.error(TAG_LOG, 'Failed to get preview profile'); + return; + } + this.output = config.cameraManager.createPreviewOutput(previewProfile, config.surfaceId); + this.addOutputListener(this.output); + return this.output; + } + // [End createOutput] + + addOutputListener(output: camera.PreviewOutput) { + this.addFrameStartEventListener(output); + this.addFrameEndEventListener(output); + } + + // [Start setRotate] + setRotate(){ + try { + Logger.info(TAG_LOG,`setRotate enter`); + let displayRotation = display.getDefaultDisplaySync().rotation; + let imageRotation = displayRotation * camera.ImageRotation.ROTATION_90; + let previewRotation = this.output?.getPreviewRotation(imageRotation); + let isDisplayLocked: boolean = true;// 建议与setXComponentSurfaceRotation入参的lock属性保持一致 + this.output?.setPreviewRotation(previewRotation, isDisplayLocked); + } catch (error) { + let err = error as BusinessError; + Logger.info(TAG_LOG,`setRotate call failed. error code: ${err.code}`); + } + } + // [End setRotate] + + // [Start onFrame] + addFrameStartEventListener(output: camera.PreviewOutput) { + output.on('frameStart', (err: BusinessError) => { + if (err !== undefined && err.code !== 0) { + Logger.error(TAG_LOG, `FrameStart callback Error, errorMessage: ${err.message}`); + return; + } + Logger.info(TAG_LOG, 'Preview frame started'); + this.onPreviewStart(); + }); + } + + addFrameEndEventListener(output: camera.PreviewOutput) { + output.on('frameEnd', (err: BusinessError) => { + if (err !== undefined && err.code !== 0) { + Logger.error(TAG_LOG, `FrameStart callback Error, errorMessage: ${err.message}`); + return; + } + Logger.info(TAG_LOG, 'Preview frame end'); + }); + } + // [End onFrame] + + // [Start release] + async release() { + await this.output?.release(); + this.output = undefined; + } + // [End release] + + // [Start getSupportedFrameRates] + getSupportedFrameRates() { + return this.output?.getSupportedFrameRates(); + } + // [End getSupportedFrameRates] + + // [Start setFrameRate] + setFrameRate(minFps: number, maxFps: number) { + try { + this.output?.setFrameRate(minFps, maxFps); + } catch(e) { + Logger.error(TAG_LOG, 'setFrameRate error ' + JSON.stringify(e)); + } + } + // [End setFrameRate] +} diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/VideoManager.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/VideoManager.ets new file mode 100644 index 000000000..c6d3794c7 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/cameramanagers/VideoManager.ets @@ -0,0 +1,419 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { media } from '@kit.MediaKit'; +import { camera } from '@kit.CameraKit'; +import { photoAccessHelper } from '@kit.MediaLibraryKit'; +import { fileIo } from '@kit.CoreFileKit'; +import { sensor } from '@kit.SensorServiceKit'; +import { Decimal } from '@kit.ArkTS'; +import { image } from '@kit.ImageKit'; +import { colorSpaceManager } from '@kit.ArkGraphics2D'; +import { Logger } from 'commons'; +import OutputManager, { CreateOutputConfig } from './OutputManager'; +import CameraConstant from '../constants/CameraConstants'; + +const TAG_LOG = 'video'; + +enum QualityLevel { + NORMAL, + HIGHER +} + +export enum AVRecorderState { + IDLE = 'idle', + PREPARED = 'prepared', + STARTED = 'started', + PAUSED = 'paused', + STOPPED = 'stopped', + RELEASED = 'released', + ERROR = 'error' +} + +export class VideoManager implements OutputManager { + private avRecorder: media.AVRecorder | undefined = undefined; + private avConfig: media.AVRecorderConfig | undefined = undefined; + private avProfile: media.AVRecorderProfile | undefined = undefined; + private videoProfile: camera.VideoProfile | undefined = undefined; + private context: Context | undefined = undefined; + private cameraPosition: number = 0; + private qualityLevel: QualityLevel = QualityLevel.NORMAL; + output: camera.VideoOutput | undefined = undefined; + private videoUri: string = ''; + private file: fileIo.File | undefined = undefined; + state: media.AVRecorderState = AVRecorderState.IDLE; + isActive: boolean = false; + private callback: (pixelMap: image.PixelMap, url: string) => void = () => { + }; + + constructor(context: Context) { + this.context = context; + } + + setIsActive(isActive: boolean) { + this.isActive = isActive; + } + + async createOutput(config: CreateOutputConfig) { + try { + this.avRecorder = await media.createAVRecorder(); + this.avRecorder.on('stateChange', state => { + this.state = state; + Logger.info(TAG_LOG, 'on avRecorder state change: ', state) + }); + } catch (error) { + Logger.info(TAG_LOG, 'createAVRecorder call failed. error code: %{public}s', error.code); + } + if (this.avRecorder === undefined || this.avRecorder === null) { + return; + } + this.setVideoProfile(config.cameraManager, config.profile, config.device); + // this.setVideoProfile(config.cameraManager, config.profile, config.device); + await this.setAVConfig(); + await this.prepare(); + await this.createVideoOutput(config.cameraManager); + return this.output; + } + + async prepare() { + try { + if (this.avRecorder?.state === AVRecorderState.IDLE && this.avConfig) { + await this.avRecorder.prepare(this.avConfig); + Logger.info(TAG_LOG, 'Succeeded in preparing'); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to prepare and catch error is ${error.message}`); + } + } + + isSupportMirror() { + let isSupported: boolean | undefined = this.output?.isMirrorSupported(); + return isSupported; + } + + // [Start start_video] + async start(isFront: boolean) { + try { + if (this.avRecorder?.state === AVRecorderState.PREPARED) { + if (this.isSupportMirror() && isFront) { + this.output?.enableMirror(true) + } + // [StartExclude start_video] + await this.avRecorder.updateRotation(this.getVideoRotation(await this.getGravity())); + // [EndExclude start_video] + await this.output?.start(); + await this.avRecorder?.start(); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to start and catch error is ${error.message}`); + } + } + // [End start_video] + + // [Start stop_video] + async stop() { + try { + if (this.avRecorder?.state === AVRecorderState.STARTED + || this.avRecorder?.state === AVRecorderState.PAUSED) { + await this.avRecorder.stop(); + await this.output?.stop(); + const thumbnail = await this.getVideoThumbnail(); + if (thumbnail) { + this.callback(thumbnail, this.videoUri); + } + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to stop and catch error is ${error.message}`); + } + } + // [End stop_video] + + // [Start pause_video] + async pause() { + try { + if (this.avRecorder?.state === AVRecorderState.STARTED) { + await this.avRecorder.pause(); + await this.output?.stop(); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to pause and catch error is ${error.message}`); + } + } + // [End pause_video] + + // [Start resume_video] + async resume() { + try { + if (this.avRecorder?.state === AVRecorderState.PAUSED) { + await this.output?.start(); + await this.avRecorder.resume(); + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to resume and catch error is ${error.message}`); + } + } + // [End resume_video] + + // [Start release_video] + async release() { + await this.avRecorder?.release(); + await this.output?.release(); + this.file && await fileIo.close(this.file.fd); + this.avRecorder?.off('stateChange'); + this.avRecorder = undefined; + this.output = undefined; + this.file = undefined; + } + // [End release_video] + + getCurrentOutput() { + return this.output; + } + + setVideoCallback(callback: (pixelMap: image.PixelMap, url: string) => void) { + this.callback = callback; + } + + // [Start create_video_output] + async createVideoOutput(cameraManager: camera.CameraManager) { + if (!this.avRecorder || this.avRecorder.state !== AVRecorderState.PREPARED) { + return; + } + try { + // [Start get_surface_id] + let videoSurfaceId = await this.avRecorder.getInputSurface(); + // [End get_surface_id] + this.output = cameraManager.createVideoOutput(this.videoProfile, videoSurfaceId); + } catch (error) { + Logger.error(TAG_LOG, + `Failed to create the output instance. error code: ${error.code}`); + } + } + + setVideoProfile(cameraManager: camera.CameraManager, targetProfile: camera.Profile, + device: camera.CameraDevice) { + this.cameraPosition = device.cameraPosition; + let cameraOutputCap: camera.CameraOutputCapability | undefined = + cameraManager.getSupportedOutputCapability(device, + camera.SceneMode.NORMAL_VIDEO); + let videoProfilesArray: camera.VideoProfile[] | undefined = cameraOutputCap?.videoProfiles; + if (videoProfilesArray?.length) { + try { + const displayRatio = targetProfile.size.width / targetProfile.size.height; + const profileWidth = targetProfile.size.width; + const videoProfile = videoProfilesArray + .sort((a, b) => Math.abs(a.size.width - profileWidth) - Math.abs(b.size.width - profileWidth)) + .find(pf => { + const pfDisplayRatio = pf.size.width / pf.size.height; + return Math.abs(pfDisplayRatio - displayRatio) <= CameraConstant.PROFILE_DIFFERENCE && + pf.format === camera.CameraFormat.CAMERA_FORMAT_YUV_420_SP; + }); + if (!videoProfile) { + Logger.error(TAG_LOG, 'Failed to get video profile'); + return; + } + this.videoProfile = videoProfile; + } catch (error) { + Logger.error(TAG_LOG, `Failed to createPhotoOutput. error: ${JSON.stringify(error)}`); + } + } + } + // [End create_video_output] + + getCameraImageRotation(): camera.ImageRotation { + return this.cameraPosition === camera.CameraPosition.CAMERA_POSITION_FRONT + ? camera.ImageRotation.ROTATION_270 + : camera.ImageRotation.ROTATION_90 + } + + async setAVConfig() { + // [Start create_file] + let options: photoAccessHelper.CreateOptions = { + title: Date.now().toString() + }; + let accessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(this.context); + this.videoUri = await accessHelper.createAsset(photoAccessHelper.PhotoType.VIDEO, 'mp4', options); + this.file = fileIo.openSync(this.videoUri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); + // [End create_file] + + // [Start av_profile] + this.avProfile = { + audioBitrate: 48000, + audioChannels: 2, + audioCodec: media.CodecMimeType.AUDIO_AAC, + audioSampleRate: 48000, + fileFormat: media.ContainerFormatType.CFT_MPEG_4, + videoBitrate: 32000000, + videoCodec: (this.qualityLevel === QualityLevel.HIGHER && this.cameraPosition === 0) ? + media.CodecMimeType.VIDEO_HEVC : media.CodecMimeType.VIDEO_AVC, + videoFrameWidth: this.videoProfile?.size.width, + videoFrameHeight: this.videoProfile?.size.height, + videoFrameRate: this.cameraPosition === 0 ? 60 : 30, + } + // [End av_profile] + + // [Start av_config] + this.avConfig = { + audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_CAMCORDER, + videoSourceType: media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV, + profile: this.avProfile, + url: `fd://${this.file.fd}`, + metadata: { + videoOrientation: this.getCameraImageRotation().toString() + } + } + // [End av_config] + } + + getRealData(data: sensor.GravityResponse): number { + let getDeviceDegree: number = 0; + let x = data.x; + let y = data.y; + let z = data.z; + // Determine if the device is approaching a vertical position (perpendicular to the ground) + if ((x * x + y * y) * 3 < z * z) { + return getDeviceDegree; + } else { + // Calculate the inverse tangent value + let sd: Decimal = Decimal.atan2(y, -x); + // Convert radian values to angle values; + let sc: Decimal = Decimal.round(Number(sd) / 3.141592653589 * 180) + // Adjust angle to be relative to vertical orientation + getDeviceDegree = 90 - Number(sc); + // Normalize angle to 0-360 degrees range + getDeviceDegree = getDeviceDegree >= 0 ? getDeviceDegree % 360 : getDeviceDegree % 360 + 360; + } + return getDeviceDegree; + } + + async getGravity(): Promise { + try { + let isSupportedGravity: boolean = false; + let data = await sensor.getSensorList(); + for (let i = 0; i < data.length; i++) { + if (data[i].sensorId === sensor.SensorId.GRAVITY) { + isSupportedGravity = true; + break; + } + } + if (isSupportedGravity === true) { + const promise: Promise = new Promise((resolve) => { + sensor.once(sensor.SensorId.GRAVITY, (data: sensor.GravityResponse) => { + resolve(this.getRealData(data)); + }); + }) + return promise; + } else { + const promise: Promise = new Promise((resolve) => { + sensor.once(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => { + resolve(this.getRealData(data as sensor.GravityResponse)); + }); + }) + return promise; + } + } catch (error) { + Logger.info(TAG_LOG, `Failed to getGravity and catch error is ${error.message}`); + return 0 + } + } + + // [Start get_video_rotation] + getVideoRotation(deviceDegree: number): camera.ImageRotation { + let videoRotation: camera.ImageRotation = this.getCameraImageRotation(); + try { + videoRotation = this.output!.getVideoRotation(deviceDegree); + Logger.info(TAG_LOG, `Video rotation is: ${videoRotation}`); + } catch (error) { + Logger.info(TAG_LOG, `Failed to getVideoRotation and catch error is: ${error.message}`); + } + return videoRotation; + } + // [End get_video_rotation] + + async getVideoThumbnail() { + let pixelMap: image.PixelMap | undefined = undefined; + try { + let avImageGenerator: media.AVImageGenerator = await media.createAVImageGenerator(); + let dataSrc: media.AVFileDescriptor = { + fd: this.file!.fd, + }; + avImageGenerator.fdSrc = dataSrc; + let timeUs = 0; + let queryOption = media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC; + let param: media.PixelMapParams = { + width: 300, + height: 300 + }; + pixelMap = await avImageGenerator.fetchFrameByTime(timeUs, queryOption, param); + avImageGenerator.release(); + } catch (error) { + Logger.info(TAG_LOG, `Failed to getVideoThumbnail and catch error is ${error.message}`); + } + return pixelMap; + } + + isRecording() { + return this.state === AVRecorderState.STARTED || this.state === AVRecorderState.PAUSED; + } + + + // [Start set_video_stabilization] + setVideoStabilizationMode(session: camera.VideoSession): boolean { + let mode: camera.VideoStabilizationMode = camera.VideoStabilizationMode.AUTO; + // Check whether video stabilization is supported + let isSupported: boolean = session.isVideoStabilizationModeSupported(mode); + if (!isSupported) { + Logger.info(TAG_LOG, `videoStabilizationMode: ${mode} is not support`); + return false; + } + Logger.info(TAG_LOG, `setVideoStabilizationMode: ${mode}`); + // Set video stabilization + session.setVideoStabilizationMode(mode); + let activeVideoStabilizationMode = session.getActiveVideoStabilizationMode(); + Logger.info(TAG_LOG, `activeVideoStabilizationMode: ${activeVideoStabilizationMode}`); + return isSupported; + } + // [End set_video_stabilization] + + // [Start set_video_color_space] + getSupportedColorSpaces(session: camera.VideoSession): Array { + let colorSpaces: colorSpaceManager.ColorSpace[] = []; + try { + colorSpaces = session.getSupportedColorSpaces(); + } catch (error) { + Logger.error(TAG_LOG, `The getSupportedColorSpaces call failed. error code: ${error.message}`); + } + return colorSpaces; + } + + setColorSpaceAfterCommitConfig(session: camera.VideoSession, isHdr: boolean): void { + let colorSpace: colorSpaceManager.ColorSpace = + isHdr ? colorSpaceManager.ColorSpace.BT2020_HLG_LIMIT : colorSpaceManager.ColorSpace.BT709_LIMIT; + let colorSpaces: colorSpaceManager.ColorSpace[] = this.getSupportedColorSpaces(session); + if (!colorSpaces.includes(colorSpace)) { + Logger.info(TAG_LOG, `colorSpace: ${colorSpace} is not support`); + return; + } + Logger.info(TAG_LOG, `setColorSpace: ${colorSpace}`); + session.setColorSpace(colorSpace); + try { + let activeColorSpace: colorSpaceManager.ColorSpace = session.getActiveColorSpace(); + Logger.info(TAG_LOG, `activeColorSpace: ${activeColorSpace}`); + } catch (error) { + Logger.error(TAG_LOG, `getActiveColorSpace Faild: ${error.message}`); + } + } + // [Start set_video_color_space] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/components/GridLine.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/components/GridLine.ets new file mode 100644 index 000000000..dfdc02e40 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/components/GridLine.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Component +export struct GridLine { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @Prop cols: number = 3; + @Prop rows: number = 3; + @Prop strokeStyle: string |number |CanvasGradient | CanvasPattern = Color.White; + @Prop lineWidth: number = 1; + + // [Start draw] + draw() { + const ctx = this.context; + ctx.strokeStyle = this.strokeStyle; + ctx.lineWidth = this.lineWidth; + const height = this.context.height; + const width = this.context.width; + // horizontal + for (let i = 1; i < this.cols; i++) { + const x = (width / this.cols) * i; + ctx.beginPath(); + ctx.moveTo(x, 0); + ctx.lineTo(x, height); + ctx.stroke(); + } + // vertical + for (let i = 1; i < this.rows; i++) { + const y = (height / this.rows) * i; + ctx.beginPath(); + ctx.moveTo(0, y); + ctx.lineTo(width, y); + ctx.stroke(); + } + } + + build() { + Canvas(this.context) + .width('100%') + .height('100%') + .hitTestBehavior(HitTestMode.Transparent) + .onReady(() => this.draw()) + } + // [End draw] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/components/LevelIndicator.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/components/LevelIndicator.ets new file mode 100644 index 000000000..b3e6ac57d --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/components/LevelIndicator.ets @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { curves, display } from '@kit.ArkUI'; +import { sensor } from '@kit.SensorServiceKit'; + +const ANGLE_DIFFERENCE: number = 3; + +// [Start LevelIndicator] +@Component +export struct LevelIndicator { + @Prop acc: sensor.AccelerometerResponse; + + getRotate() { + const rotation = display.getDefaultDisplaySync().rotation * 90; + if (rotation === 90 || rotation === 270) { + return -Math.atan2(-this.acc.y, this.acc.x) * (180 / Math.PI); + } + return -Math.atan2(-this.acc.x, this.acc.y) * (180 / Math.PI); + } + + isAlign() { + return Math.abs(this.getRotate()) - 0 <= ANGLE_DIFFERENCE + || Math.abs(Math.abs(this.getRotate()) - 90) <= ANGLE_DIFFERENCE; + } + + build() { + Stack({ alignContent: Alignment.Center }) { + Line({ + width: 200, + height: 1 + }) + // [StartExclude LevelIndicator] + .stroke(Color.White) + .endPoint([200, 0]) + // [EndExclude LevelIndicator] + .strokeDashArray([3, this.isAlign() ? 0 : 3]) + .opacity(this.isAlign() ? 1 : 0.5) + .rotate({ angle: this.getRotate(), centerX: '50%', centerY: '50%' }) + .animation({ + curve: curves.springMotion(0.6, 0.8), + iterations: 1, + playMode: PlayMode.Normal + }) + Circle() + // [StartExclude LevelIndicator] + .width(48) + .height(48) + .stroke(Color.White) + .fill(Color.Transparent) + // [EndExclude LevelIndicator] + .opacity(this.isAlign() ? 1 : 0.5) + } + // [StartExclude LevelIndicator] + .width('100%') + .height('100%') + // [EndExclude LevelIndicator] + .hitTestBehavior(HitTestMode.Transparent) + } +} +// [End LevelIndicator] diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/ets/constants/CameraConstants.ets b/CameraKit/RotationDisplayCamera/camera/src/main/ets/constants/CameraConstants.ets new file mode 100644 index 000000000..780f111cd --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/ets/constants/CameraConstants.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class CameraConstant { + static readonly PROFILE_DIFFERENCE = 1e-10; +} + +export default CameraConstant; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/camera/src/main/module.json5 b/CameraKit/RotationDisplayCamera/camera/src/main/module.json5 new file mode 100644 index 000000000..c5409dfaf --- /dev/null +++ b/CameraKit/RotationDisplayCamera/camera/src/main/module.json5 @@ -0,0 +1,10 @@ +{ + "module": { + "name": "camera", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/commons/.gitignore b/CameraKit/RotationDisplayCamera/commons/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/commons/BuildProfile.ets b/CameraKit/RotationDisplayCamera/commons/BuildProfile.ets new file mode 100644 index 000000000..fca5fff74 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/BuildProfile.ets @@ -0,0 +1,17 @@ +/** + * Use these variables when you tailor your ArkTS code. They must be of the const type. + */ +export const HAR_VERSION = '1.0.0'; +export const BUILD_MODE_NAME = 'test'; +export const DEBUG = true; +export const TARGET_NAME = 'default'; + +/** + * BuildProfile Class is used only for compatibility purposes. + */ +export default class BuildProfile { + static readonly HAR_VERSION = HAR_VERSION; + static readonly BUILD_MODE_NAME = BUILD_MODE_NAME; + static readonly DEBUG = DEBUG; + static readonly TARGET_NAME = TARGET_NAME; +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/commons/Index.ets b/CameraKit/RotationDisplayCamera/commons/Index.ets new file mode 100644 index 000000000..621cafbe0 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/Index.ets @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { Logger } from './src/main/ets/utils/Logger'; diff --git a/CameraKit/RotationDisplayCamera/commons/build-profile.json5 b/CameraKit/RotationDisplayCamera/commons/build-profile.json5 new file mode 100644 index 000000000..284a1c335 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/build-profile.json5 @@ -0,0 +1,20 @@ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/CameraKit/RotationDisplayCamera/commons/hvigorfile.ts b/CameraKit/RotationDisplayCamera/commons/hvigorfile.ts new file mode 100644 index 000000000..805c5d7f6 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/hvigorfile.ts @@ -0,0 +1,6 @@ +import { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/commons/oh-package.json5 b/CameraKit/RotationDisplayCamera/commons/oh-package.json5 new file mode 100644 index 000000000..d50184a32 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/oh-package.json5 @@ -0,0 +1,9 @@ +{ + "name": "commons", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": {} +} diff --git a/CameraKit/RotationDisplayCamera/commons/src/main/ets/utils/Logger.ets b/CameraKit/RotationDisplayCamera/commons/src/main/ets/utils/Logger.ets new file mode 100644 index 000000000..c769a6076 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/src/main/ets/utils/Logger.ets @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; + +export class Logger { + private static readonly DOMAIN: number = 0xFF00; + private static readonly TAG: string = 'com.example.customcamera'; + private static readonly PREFIX: string = '[camera-log]'; + + public static debug(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.debug(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static info(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.info(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static warn(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.warn(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static error(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.error(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + public static fatal(logTag: string, messageFormat: string, ...args: Object[]): void { + hilog.fatal(Logger.DOMAIN, Logger.TAG, `${Logger.PREFIX} ${logTag}: ${messageFormat}`, args); + } + + private constructor() { + } +} diff --git a/CameraKit/RotationDisplayCamera/commons/src/main/module.json5 b/CameraKit/RotationDisplayCamera/commons/src/main/module.json5 new file mode 100644 index 000000000..6bae1d9e8 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/commons/src/main/module.json5 @@ -0,0 +1,10 @@ +{ + "module": { + "name": "commons", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} diff --git a/CameraKit/RotationDisplayCamera/entry/.gitignore b/CameraKit/RotationDisplayCamera/entry/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/build-profile.json5 b/CameraKit/RotationDisplayCamera/entry/build-profile.json5 new file mode 100644 index 000000000..50e33db6e --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/build-profile.json5 @@ -0,0 +1,26 @@ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/hvigorfile.ts b/CameraKit/RotationDisplayCamera/entry/hvigorfile.ts new file mode 100644 index 000000000..c6edcd904 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/hvigorfile.ts @@ -0,0 +1,6 @@ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/CameraKit/RotationDisplayCamera/entry/oh-package-lock.json5 b/CameraKit/RotationDisplayCamera/entry/oh-package-lock.json5 new file mode 100644 index 000000000..01723a120 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/oh-package-lock.json5 @@ -0,0 +1,29 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "camera@../camera": "camera@../camera", + "commons@../commons": "commons@../commons" + }, + "packages": { + "camera@../camera": { + "name": "camera", + "version": "1.0.0", + "resolved": "../camera", + "registryType": "local", + "dependencies": { + "commons": "file:../commons" + } + }, + "commons@../commons": { + "name": "commons", + "version": "1.0.0", + "resolved": "../commons", + "registryType": "local" + } + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/oh-package.json5 b/CameraKit/RotationDisplayCamera/entry/oh-package.json5 new file mode 100644 index 000000000..4f1c83bce --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/oh-package.json5 @@ -0,0 +1,13 @@ +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + "commons": "file:../commons", + "camera": "file:../camera" + } +} + diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/constants/Constants.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/constants/Constants.ets new file mode 100644 index 000000000..63a319b6d --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/constants/Constants.ets @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Permissions } from "@kit.AbilityKit"; + +class CameraConstant { + static readonly RATIO_PHOTO: number = 4 / 3; + static readonly RATIO_VIDEO: number = 16 / 9; + static readonly PERMISSIONS: Permissions[] = [ + 'ohos.permission.CAMERA', + 'ohos.permission.MICROPHONE', + 'ohos.permission.MEDIA_LOCATION', + 'ohos.permission.WRITE_IMAGEVIDEO', + 'ohos.permission.READ_IMAGEVIDEO', + 'ohos.permission.APPROXIMATELY_LOCATION' + ]; +} + +export default CameraConstant; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/entryability/EntryAbility.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..fe3138ba2 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ConfigurationConstant, UIAbility } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; +import WindowUtil from '../utils/WindowUtil'; + +const DOMAIN = 0x0000; + +export default class EntryAbility extends UIAbility { + onCreate(): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + WindowUtil.enterImmersive(windowStage.getMainWindowSync()); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err)); + return; + } + hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/pages/Index.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..1f74880c4 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,523 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { sensor } from '@kit.SensorServiceKit'; +import { common } from '@kit.AbilityKit'; +import { display } from '@kit.ArkUI'; +import { curves } from '@kit.ArkUI'; +import { + CameraManager, + GridLine, + ImageReceiverManager, + LevelIndicator, + PhotoManager, + PreviewManager, + VideoManager +} from 'camera'; +import CameraConstant from '../constants/Constants'; +import { calCameraPoint, getClampedChildPosition, limitNumberInRange, showToast } from '../utils/CommonUtil'; +import RefreshableTimer from '../utils/RefreshableTimer'; +import PermissionManager from '../utils/PermissionManager'; +import ZoomButtonsView from '../views/ZoomButtonsView'; +import ModeButtonsView from '../views/ModeButtonsView'; +import SettingButtonsView from '../views/SettingButtonsView'; +import OperateButtonsView from '../views/OperateButtonsView'; +import PreviewViewModel from '../viewmodels/PreviewViewModel'; + +@Extend(SymbolGlyph) +function funcButtonStyle() { + .fontSize(22) + .fontColor([Color.White]) + .borderRadius('50%') + .padding(12) + .backgroundColor('#664D4D4D') +} + +@Entry +@Component +struct Index { + private context: Context = this.getUIContext().getHostContext()!; + private applicationContext = this.context.getApplicationContext(); + private windowClass = (this.context as common.UIAbilityContext).windowStage.getMainWindowSync(); + + @State videoManager: VideoManager = new VideoManager(this.context); + @State isSinglePhoto: boolean = false; + @State isLivePhoto: boolean = false; + private photoManager: PhotoManager = new PhotoManager(this.context, true, this.isSinglePhoto); + private previewManager: PreviewManager = new PreviewManager(() => { this.onPreviewStart() }); + private imageReceiverManager: ImageReceiverManager = new ImageReceiverManager(px => { + this.onImageReceiver(px); + }); + private cameraManager: CameraManager = new CameraManager(this.context, [this.previewManager, + this.photoManager, this.videoManager, this.imageReceiverManager]); + + @State previewVM: PreviewViewModel = new PreviewViewModel(this.getUIContext()); + + @State isGridLineVisible: boolean = false; + @State isLevelIndicatorVisible: boolean = false; + @State isPreviewImageVisible: boolean = false; + + @State isFocusBoxVisible: boolean = false; + @State focusBoxPosition: Edges = { top: 0, left: 0 }; + private focusBoxSize: Size = { width: 80, height: 80 }; + private focusBoxTimer: RefreshableTimer = new RefreshableTimer(() => { + this.isFocusBoxVisible = false; + }, 3 * 1000); + private exposureFontSize: number = 24; + + @State isSleeping: boolean = false; + private sleepTimer?: RefreshableTimer; + + private zoomRange: number[] = []; + @State zooms: number[] = [1, 5, 10]; + @State currentZoom: number = 1; + @State isZoomPinching: boolean = false; + private originZoomBeforePinch: number = 1; // record zoom after pinch, sale base it. + + @State previewImage: PixelMap | ResourceStr = ''; + private PreviewImageHeight: number = 80; + + @State photoDelayTime: number = 0; + @State photoRemainder: number = 0; + @State isDelayTakePhoto:boolean = false; + + @State acc: sensor.AccelerometerResponse = { x: 0, y: 0, z: 0 } as sensor.AccelerometerResponse; + private setPreviewSize: () => void = () => { this.previewVM.setPreviewSize(); } + + @State isShowBlack: boolean = false; + @StorageLink('captureClick') @Watch('onCaptureClick') captureClickFlag: number = 0; + @State flashBlackOpacity: number = 1; + + async aboutToAppear() { + this.addGravityEventListener(); + this.initSleepTimer(); + this.registerApplicationStateChange(); + this.addOrientationChangeEventListener(); + display.on('foldStatusChange', () => { this.onFoldStatusChange() }); + } + + aboutToDisappear(): void { + this.removeOrientationChangeEventListener(); + } + + // [Start addGravityEventListener] + addGravityEventListener() { + sensor.on(sensor.SensorId.GRAVITY, (data) => { + this.acc = data; + }, { interval: 100 * 1000 * 1000 }); // 100ms + } + // [End addGravityEventListener] + + addOrientationChangeEventListener() { + this.windowClass.on('windowSizeChange', this.setPreviewSize); + } + + removeOrientationChangeEventListener() { + this.windowClass.off('windowSizeChange', this.setPreviewSize); + } + + onImageReceiver(pixelMap: PixelMap) { + this.previewImage = pixelMap; + } + + // [Start initSleepTimer] + initSleepTimer() { + this.sleepTimer = new RefreshableTimer(() => { + this.previewVM.openPreviewBlur(); + this.isSleeping = true; + this.cameraManager.release(); + }, 30 * 1000); + this.sleepTimer.start(); + const observer = this.getUIContext().getUIObserver(); + observer.on('willClick', () => { + this.sleepTimer?.refresh(); + }); + } + // [End initSleepTimer] + + async onFoldStatusChange() { + await this.cameraManager.release(); + await this.startCamera(); + this.syncButtonSettings(); + } + + // [Start registerApplicationStateChange] + registerApplicationStateChange() { + this.applicationContext.on('applicationStateChange', { + onApplicationForeground: async () => { + await this.startCamera(); + // [StartExclude registerApplicationStateChange] + this.syncButtonSettings(); + // [EndExclude registerApplicationStateChange] + }, + onApplicationBackground: () => { + // [StartExclude registerApplicationStateChange] + this.previewVM.openPreviewBlur(); + // [EndExclude registerApplicationStateChange] + this.cameraManager.release(); + } + }) + } + + async startCamera() { + const cameraPosition = this.previewVM.getCameraPosition(); + const sceneMode = this.previewVM.getSceneMode(); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + } + // [End registerApplicationStateChange] + + exitApp() { + this.applicationContext.killAllProcesses(); + } + + onPreviewStart() { + this.previewVM.closePreviewBlur(); + } + + initZooms() { + const zoomRange = this.cameraManager.getZoomRange(); + const minZoom = zoomRange[0]; + this.zoomRange = zoomRange; + if (minZoom < this.zooms[0]) { + this.zooms.unshift(minZoom); + } + } + + initRates() { + const frameRates = this.previewManager.getSupportedFrameRates(); + if (frameRates && frameRates[0]) { + const minRate = frameRates[0].min; + const maxRate = frameRates[0].max; + this.previewVM.rates = [minRate, maxRate]; + this.previewVM.currentRate = maxRate; + this.previewManager.setFrameRate(maxRate, maxRate); + }; + } + + syncButtonSettings() { + this.previewManager.setFrameRate(this.previewVM.currentRate, this.previewVM.currentRate); + this.photoManager.enableMovingPhoto(this.isLivePhoto); + this.photoManager.setPhotoOutputCallback(this.isSinglePhoto); + } + + flashBlackAnim() { + this.flashBlackOpacity = 1; + this.isShowBlack = true; + animateToImmediately({ + curve: curves.interpolatingSpring(1, 1, 410, 38), + delay: 50, + onFinish: () => { + this.isShowBlack = false; + this.flashBlackOpacity = 1; + } + }, () => { + this.flashBlackOpacity = 0; + }) + } + + onCaptureClick(): void { + this.flashBlackAnim(); + } + + @Builder + preview() { + // [Start Stack] + Stack({ + alignContent: Alignment.Center + }) { + // [Start XComponent] + // [Start XComponent_gesture] + XComponent({ + type: XComponentType.SURFACE, + controller: this.previewVM.xComponentController + }) + .size({height: '100%', width: '100%'}) + // [StartExclude Stack] + // [StartExclude XComponent_gesture] + .onLoad(async () => { + // [StartExclude XComponent] + await PermissionManager.request(CameraConstant.PERMISSIONS, this.context) + .catch(() => { this.exitApp() }); + // [EndExclude XComponent] + this.previewVM.surfaceId = this.previewVM.xComponentController.getXComponentSurfaceId(); + this.previewVM.setPreviewSize(); + this.previewVM.xComponentController.setXComponentSurfaceRotation({ lock: true }); + // [StartExclude XComponent] + await this.startCamera(); + this.initZooms(); + this.initRates(); + // [EndExclude XComponent] + }) + // [StartExclude XComponent_gesture] + // [End XComponent] + .gesture( + PinchGesture({ fingers: 2 }) + .onActionStart(() => { + this.originZoomBeforePinch = this.currentZoom; + this.isZoomPinching = true; + }) + .onActionUpdate((event: GestureEvent) => { + const targetZoom = this.originZoomBeforePinch * event.scale; + this.currentZoom = limitNumberInRange(targetZoom, this.zoomRange); + this.cameraManager.setZoomRatio(this.currentZoom); + }) + .onActionEnd(() => { + this.isZoomPinching = false; + }) + ) + // [End XComponent_gesture] + .onClick(event => { + this.isFocusBoxVisible = true; + const previewSize = this.previewVM.previewSize; + const cameraPoint = calCameraPoint( + this.getUIContext().vp2px(event.x), + this.getUIContext().vp2px(event.y), + previewSize.width, + previewSize.height + ); + this.cameraManager.setFocusPoint(cameraPoint); + this.cameraManager.setMeteringPoint(cameraPoint); + this.focusBoxPosition = getClampedChildPosition(this.focusBoxSize, { + width: this.getUIContext().px2vp(previewSize.width), + height: this.getUIContext().px2vp(previewSize.height) + }, event); + this.focusBoxTimer.refresh(); + }) + // [EndExclude Stack] + if (this.isGridLineVisible) { + GridLine() + } + // [StartExclude Stack] + if (this.isLevelIndicatorVisible) { + LevelIndicator({ + acc: this.acc + }) + } + // focus box + if (this.isFocusBoxVisible) { + Image($r('app.media.focus_box')) + .width(80) + .height(80) + .position(this.focusBoxPosition) + SymbolGlyph($r('sys.symbol.sun_max')) + .fontSize(this.exposureFontSize) + .fontColor([Color.White]) + .position(this.getExposurePosition()) + } + + if(this.isDelayTakePhoto){ + Text(`${this.photoRemainder}S`) + .fontSize(44) + .fontWeight(FontWeight.Regular) + .fontColor(Color.White) + } + // [EndExclude Stack] + + if (this.isShowBlack) { + Column() + .key('black') + .width('100%') + .height('100%') + .backgroundColor(Color.Black) + .opacity(this.flashBlackOpacity) + } + } + // .width('100%') + // .height('100%') + // [End Stack] + .alignRules({ + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }) + // .width(this.previewVM.getPreviewWidth()) + // .height(this.previewVM.getPreviewHeight()) + // .margin({ top: this.previewVM.getPreviewTop() }) + // .blur(this.previewVM.blurRadius) + // .rotate(this.previewVM.blurRotation) + .size({width: '100%', height: '100%'}) + } + + // [Start wakeupMask] + @Builder + wakeupMask() { + Column() { + Text($r('app.string.wakeup_text')) + .fontColor(Color.White) + .opacity(0.6) + } + // [StartExclude wakeupMask] + .width('100%') + .height('100%') + .backgroundColor(Color.Black) + .justifyContent(FlexAlign.Center) + // [EndExclude wakeupMask] + .onClick(async () => { + this.isSleeping = false; + this.sleepTimer?.refresh(); + await this.startCamera(); + this.syncButtonSettings(); + }) + } + // [End wakeupMask] + + @Builder + gridLineButton() { + SymbolGlyph( + this.isGridLineVisible + ? $r('sys.symbol.camera_assistive_grid') + : $r('sys.symbol.camera_assistive_grid_slash') + ) + .funcButtonStyle() + .onClick(() => { + this.isGridLineVisible = !this.isGridLineVisible; + const message = this.isGridLineVisible ? $r('app.string.grid_line_open') : $r('app.string.grid_line_close'); + showToast(this.getUIContext(), message); + }) + } + + @Builder + levelButton() { + SymbolGlyph($r('sys.symbol.horizontal_level')) + .funcButtonStyle() + .onClick(() => { + this.isLevelIndicatorVisible = !this.isLevelIndicatorVisible; + const message = this.isLevelIndicatorVisible ? $r('app.string.level_open') : $r('app.string.level_close'); + showToast(this.getUIContext(), message); + }) + } + + @Builder + previewImageButton() { + SymbolGlyph(this.isPreviewImageVisible ? $r('sys.symbol.eye') : $r('sys.symbol.eye_slash')) + .funcButtonStyle() + .onClick(() => { + this.isPreviewImageVisible = !this.isPreviewImageVisible; + const message = this.isPreviewImageVisible ? $r('app.string.preview_image_open') : $r('app.string.preview_image_close'); + showToast(this.getUIContext(), message); + }) + } + + getPreviewImageWidth() { + const rotation = display.getDefaultDisplaySync().rotation * 90; + const ratio = this.previewVM.getPreviewRatio(); + const displayRatio = rotation === 90 || rotation === 270 ? 1 / ratio : ratio; + return this.PreviewImageHeight / displayRatio; + } + + getExposurePosition(): Edges { + const focusBoxLeft = this.focusBoxPosition.left as number; + const focusBoxTop = this.focusBoxPosition.top as number; + const exposureWidth = this.exposureFontSize; + const exposureHeight = this.exposureFontSize; + const focusBoxWidth = this.focusBoxSize.width; + const focusBoxHeight = this.focusBoxSize.height; + const previewWidth = this.getUIContext().px2vp(this.previewVM.previewSize.width); + const GAP = 10; + const top = focusBoxTop - exposureHeight / 2 + focusBoxHeight / 2; + const left = focusBoxLeft > previewWidth / 2 + ? focusBoxLeft - GAP - exposureWidth + : focusBoxLeft + focusBoxWidth + GAP; + return { top, left }; + } + + @Builder + previewImageView() { + Image(this.previewImage) + .width(this.getPreviewImageWidth()) + .height(this.PreviewImageHeight) + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + left: { anchor: '__container__', align: HorizontalAlign.Start } + }) + .margin({ + bottom: 10, + left: 10 + }) + } + + @Builder + funcButtonsView() { + Column({ space: 24 }) { + this.gridLineButton() + this.levelButton() + this.previewImageButton() + } + .alignRules({ + top: { anchor: 'settingButtonsView', align: VerticalAlign.Bottom }, + right: { anchor: 'settingButtonsView', align: HorizontalAlign.End } + }) + .margin({ + top: 40, + right: 10 + }) + } + + build() { + RelativeContainer() { + this.preview() + if (this.isPreviewImageVisible) { + this.previewImageView() + } + this.funcButtonsView() + SettingButtonsView({ + previewVM: this.previewVM, + cameraManager: this.cameraManager, + previewManager: this.previewManager, + photoManager: this.photoManager, + videoManager: this.videoManager, + photoDelayTime: this.photoDelayTime, + isSinglePhoto: this.isSinglePhoto, + isLivePhoto: this.isLivePhoto + }) + if (!this.photoRemainder) { + if (!this.previewVM.isFront) { + ZoomButtonsView({ + cameraManager: this.cameraManager, + zoomRange: this.zoomRange, + zooms: this.zooms, + currentZoom: this.currentZoom + }) + } + ModeButtonsView({ + previewVM: this.previewVM, + photoManager: this.photoManager, + videoManager: this.videoManager, + cameraManager: this.cameraManager, + syncButtonSettings: () => { + this.syncButtonSettings(); + } + }) + OperateButtonsView({ + previewVM: this.previewVM, + cameraManager: this.cameraManager, + photoManager: this.photoManager, + videoManager: this.videoManager, + isDelayTakePhoto: this.isDelayTakePhoto, + photoDelayTime: this.photoDelayTime, + photoRemainder: this.photoRemainder, + syncButtonSettings: () => { + this.syncButtonSettings(); + } + }) + } + if (this.isSleeping) { + this.wakeupMask() + } + } + .height('100%') + .width('100%') + .backgroundColor(Color.Black) + .onClick(() => {}) + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/CommonUtil.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/CommonUtil.ets new file mode 100644 index 000000000..fcf47ba52 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/CommonUtil.ets @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Point } from '@kit.TestKit'; +import { camera } from '@kit.CameraKit'; +import { display } from '@kit.ArkUI'; + +export function limitNumberInRange(src: number, range: number[]) { + if (range.length < 2) return src; + if (src < range[0]) return range[0]; + if (src > range[1]) return range[1]; + return src; +} + +// find start index the target in which range +// eg: target: 1.5 arr: [0, 1, 5, 10] return 1 +export function findRangeIndex(target: number, arr: number[]) { + if (arr.length === 0) { + return -1; + } + if (target >= arr[arr.length - 1]) { + return arr.length - 1; + } + return [...arr].sort((a, b) => a - b).findIndex((n, i) => { + return target >= n && target < arr[i + 1]; + }); +} + +// Math floor float by digit +// eg: toFixed(9.97, 1) -> 9.9 +export function toFixed(num: number, digit: number): string { + const scale = 10 ** digit; + return (Math.floor(num * scale) / scale).toFixed(digit); +} + +// [Start getClampedChildPosition] +// cal absolute position in parent area +export function getClampedChildPosition(childSize: Size, parentSize: Size, point: Point): Edges { + // center point + let left = point.x - childSize.width / 2; + let top = point.y - childSize.height / 2; + // limit in left + if (left < 0) { + left = 0; + } + // limit in right + if (left + childSize.width > parentSize.width) { + left = parentSize.width - childSize.width; + } + // limit in top + if (top < 0) { + top = 0; + } + // limit in bottom + if (top + childSize.height > parentSize.height) { + top = parentSize.height - childSize.height; + } + return { left, top }; +} +// [End getClampedChildPosition] + +export function showToast( + UIContext: UIContext, + message: ResourceStr = '', + duration = 2000, + alignment = Alignment.Top, + offset: Offset = { dx: 0, dy: 300 } +) { + UIContext.getPromptAction().openToast({ + message, + duration, + alignment, + offset + }); +} + +// [Start calCameraPoint] +export function calCameraPoint(eventX: number, eventY: number, width: number, height: number): camera.Point { + const displayRotation = display.getDefaultDisplaySync().rotation * 90; + if (displayRotation === 0) { + return { x: eventY / height, y: 1 - eventX / width }; + } + if (displayRotation === 90) { + return { x: 1 - eventX / width, y: 1 - eventY / height }; + } + if (displayRotation === 180) { + return { x: 1 - eventY / height, y: eventX / width }; + } + return { x: eventX / width, y: eventY / height }; +} +// [End calCameraPoint] \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/PermissionManager.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/PermissionManager.ets new file mode 100644 index 000000000..c65190ea0 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/PermissionManager.ets @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { abilityAccessCtrl, Context, Permissions } from '@kit.AbilityKit'; +import { Logger } from 'commons'; + +const TAG = 'PermissionManager'; + +// [Start request_permissions] +class PermissionManager { + private static atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); + + static async request(permissions: Permissions[], context: Context) { + const data = await PermissionManager.atManager.requestPermissionsFromUser(context, permissions); + const grantStatus: number[] = data.authResults; + const deniedPermissions = permissions.filter((_, i) => grantStatus[i] !== 0); + for (const permission of deniedPermissions) { + const secondGrantStatus = await PermissionManager.atManager.requestPermissionOnSetting(context, [permission]); + if (secondGrantStatus[0] !== 0) { + Logger.error(TAG, 'permission denied'); + throw new Error('permission denied'); + } + } + } +} +// [End request_permissions] + +export default PermissionManager; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/RefreshableTimer.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/RefreshableTimer.ets new file mode 100644 index 000000000..4956219f7 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/RefreshableTimer.ets @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// [Start RefreshableTimer] +class RefreshableTimer { + private timerId?: number; + private readonly timeout: number; + private callback: () => void; + private isActive: boolean = false; + + constructor(callback: () => void, timeout: number) { + this.callback = callback; + this.timeout = timeout; + } + + start(): void { + this.timerId = setTimeout(() => { + this.callback(); + this.isActive = false; + }, this.timeout); + this.isActive = true; + } + + clear(): void { + clearTimeout(this.timerId); + this.timerId = undefined; + this.isActive = false; + } + + refresh(): void { + this.clear(); + this.start(); + } + + isRunning(): boolean { + return this.isActive; + } +} +// [End RefreshableTimer] + +export default RefreshableTimer; diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/WindowUtil.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/WindowUtil.ets new file mode 100644 index 000000000..9d54a733d --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/utils/WindowUtil.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { display, window } from '@kit.ArkUI'; +import { Logger } from 'commons'; + +const TAG = 'WindowUtil' + +class WindowUtil { + static async enterImmersive(window: window.Window): Promise { + try { + await window.setWindowLayoutFullScreen(true); + await window.setWindowSystemBarEnable([]); + } catch (exception) { + Logger.error(TAG, 'Failed to enter immersive. Cause:', JSON.stringify(exception)); + } + } + + // Given a ratio, obtain the maximum display width and height based on the screen width and height. + static getMaxDisplaySize(ratio: number): Size { + const defaultDisplay: display.Display = display.getDefaultDisplaySync(); + const windowWidth: number = defaultDisplay.width; + const windowHeight: number = defaultDisplay.height; + const rotation = display.getDefaultDisplaySync().rotation * 90; + if (rotation === 90 || rotation === 270) { + ratio = 1 / ratio; + } + // Calculate the height based on the screen width. + const calculatedHeight = windowWidth * ratio; + if (calculatedHeight <= windowHeight) { + return { + width: windowWidth, + height: calculatedHeight + }; + } else { + return { + width: windowHeight / ratio, + height: windowHeight + }; + } + } + + static getWindowRatio(): number { + const defaultDisplay: display.Display = display.getDefaultDisplaySync(); + return defaultDisplay.height / defaultDisplay.width; + } +} + +export default WindowUtil; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/viewmodels/PreviewViewModel.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/viewmodels/PreviewViewModel.ets new file mode 100644 index 000000000..c277ea257 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/viewmodels/PreviewViewModel.ets @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { curves, display } from '@kit.ArkUI'; +import { camera } from '@kit.CameraKit'; +import WindowUtil from '../utils/WindowUtil'; +import CameraConstant from '../constants/Constants'; + +export enum CameraMode { + PHOTO, + VIDEO +} + +/** + * States and methods related to preview. + */ +class PreviewViewModel { + private uiContext: UIContext; + // [Start isFront] + isFront: boolean = false; + // [StartExclude isFront] + cameraMode: CameraMode = CameraMode.PHOTO; + xComponentController: XComponentController = new XComponentController(); + surfaceId: string = ''; + previewSize: Size = WindowUtil.getMaxDisplaySize(CameraConstant.RATIO_PHOTO); + rates?: number[] = []; + currentRate: number = 0; + blurRadius: number = 0; + blurRotation: RotateOptions = { y: 0.5, angle: 0}; + + constructor(uiContext: UIContext) { + this.uiContext = uiContext; + } + + // [EndExclude isFront] + getCameraPosition() { + return this.isFront + ? camera.CameraPosition.CAMERA_POSITION_FRONT + : camera.CameraPosition.CAMERA_POSITION_BACK; + } + // [End isFront] + + getPreviewRatio() { + return this.cameraMode === CameraMode.PHOTO + ? CameraConstant.RATIO_PHOTO + : CameraConstant.RATIO_VIDEO; + } + + getSceneMode() { + return this.cameraMode === CameraMode.PHOTO + ? camera.SceneMode.NORMAL_PHOTO + : camera.SceneMode.NORMAL_VIDEO; + } + + // [Start getProfile] + getProfile: (cameraOrientation: number, picFormat: camera.CameraFormat) => camera.Profile = (cameraOrientation, picFormat) => { + const displaySize: Size = WindowUtil.getMaxDisplaySize(this.getPreviewRatio()); + const displayRotation = display.getDefaultDisplaySync().rotation * 90; + const isRevert = (cameraOrientation + displayRotation) % 180 !== 0; + return { + // format: camera.CameraFormat.CAMERA_FORMAT_YUV_420_SP, + format: picFormat, + size: { + height: isRevert ? displaySize.width : displaySize.height, + width: isRevert ? displaySize.height : displaySize.width + } + }; + } + // [End getProfile] + + // [Start setPreviewSize] + setPreviewSize() { + const displaySize: Size = WindowUtil.getMaxDisplaySize(this.getPreviewRatio()); + this.previewSize = displaySize; + this.xComponentController.setXComponentSurfaceRect({ + surfaceWidth: displaySize.width, + surfaceHeight: displaySize.height + }); + } + // [End setPreviewSize] + + getPreviewTop() { + const previewRatio = this.getPreviewRatio(); + return WindowUtil.getWindowRatio() > previewRatio ? 85 : 0; + } + + getPreviewWidth() { + return this.uiContext.px2vp(this.previewSize.width); + } + + getPreviewHeight() { + return this.uiContext.px2vp(this.previewSize.height); + } + + isPhotoMode() { + return this.cameraMode === CameraMode.PHOTO; + } + + isVideoMode() { + return this.cameraMode === CameraMode.VIDEO; + } + + isCurrentCameraMode(mode: CameraMode) { + return this.cameraMode === mode; + } + + openPreviewBlur() { + animateToImmediately({ + duration: 200, + curve: Curve.Friction + }, () => { + this.blurRadius = 150; + }); + } + + rotatePreviewBlur() { + animateToImmediately({ + delay: 50, + duration: 200, + curve: curves.cubicBezierCurve(0.2, 0, 0.83, 1), + onFinish: () => { + this.rotatePreviewBlurSecond(); + } + }, () => { + this.blurRotation = { y: 0.5, angle: 90 }; + }); + } + + rotatePreviewBlurSecond() { + this.blurRotation = { y: 0.5, angle: 270 }; + animateToImmediately({ + duration: 200, + curve: curves.cubicBezierCurve(0.17, 0, 0.2, 1), + onFinish: () => { + this.blurRotation = { y: 0.5, angle: 0 }; + } + }, () => { + this.blurRotation = { y: 0.5, angle: 360 }; + }); + } + + closePreviewBlur() { + animateToImmediately({ + duration: 200, + curve: Curve.FastOutSlowIn + }, () => { + this.blurRadius = 0; + }); + } +} + +export default PreviewViewModel; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ModeButtonsView.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ModeButtonsView.ets new file mode 100644 index 000000000..0a8bd9352 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ModeButtonsView.ets @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { CameraManager, PhotoManager, VideoManager } from 'camera'; +import PreviewViewModel, { CameraMode } from '../viewmodels/PreviewViewModel'; + +export interface CameraModeButton { + title: ResourceStr; + mode: CameraMode; + onClick?: () => void; +} + +@Component +struct ModeButtonsView { + private cameraModeButtons: CameraModeButton[] = [ + { + title: $r('app.string.photo'), + mode: CameraMode.PHOTO + }, + { + title: $r('app.string.video'), + mode: CameraMode.VIDEO + } + ] + @Link previewVM: PreviewViewModel; // Do not use @prop, otherwise deep copying, some underlying data will be lost. + @Require cameraManager: CameraManager; + @Require photoManager: PhotoManager; + @Require videoManager: VideoManager; + @Require syncButtonSettings: () => void; + + build() { + Row() { + ForEach(this.cameraModeButtons, (modeBtn: CameraModeButton) => { + Text(modeBtn.title) + .fontColor(Color.White) + .fontSize(14) + .fontWeight(this.previewVM.isCurrentCameraMode(modeBtn.mode) ? FontWeight.Bold : FontWeight.Normal) + .onClick(async () => { + if (modeBtn.onClick) { + modeBtn.onClick(); + } else { + if (this.previewVM.isCurrentCameraMode(modeBtn.mode)) { + return; + } + this.previewVM.openPreviewBlur(); + this.previewVM.cameraMode = modeBtn.mode; + this.previewVM.setPreviewSize(); + const sceneMode = this.previewVM.getSceneMode(); + const cameraPosition = this.previewVM.getCameraPosition(); + await this.cameraManager.release(); + this.photoManager.setIsActive(this.previewVM.isPhotoMode() ? true : false); + this.videoManager.setIsActive(this.previewVM.isPhotoMode() ? false : true); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + this.syncButtonSettings(); + } + }) + }, (modeBtn: CameraModeButton) => modeBtn.mode.toString()) + } + .id('modeButtonsView') + .width('40%') + .justifyContent(FlexAlign.SpaceAround) + .alignRules({ + bottom: { anchor: 'operateButtonsView', align: VerticalAlign.Top }, + middle: { anchor: 'operateButtonsView', align: HorizontalAlign.Center } + }) + .margin({ bottom: 40 }) + } +} + +export default ModeButtonsView; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/OperateButtonsView.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/OperateButtonsView.ets new file mode 100644 index 000000000..2bd8589fa --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/OperateButtonsView.ets @@ -0,0 +1,270 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { image } from '@kit.ImageKit'; +import { common } from '@kit.AbilityKit'; +import { AVRecorderState, CameraManager, PhotoManager, VideoManager } from 'camera'; +import PreviewViewModel from '../viewmodels/PreviewViewModel'; + +@Component +struct OperateButtonsView { + @Link isDelayTakePhoto: boolean; + @Link previewVM: PreviewViewModel; + @Require cameraManager: CameraManager; + @Link videoManager: VideoManager; // Do not use @prop, otherwise deep copying, some underlying data will be lost. + @Require photoManager: PhotoManager; + @Prop @Require photoDelayTime: number; + @Link photoRemainder: number; + private photoDelayTimer:number = 0; + @State thumbnail: image.PixelMap | string = ''; + @State thumbnailUrl: string = ''; + @Require syncButtonSettings: () => void; + private context = this.getUIContext().getHostContext() as common.UIAbilityContext; + private setThumbnail: (pixelMap: image.PixelMap, url: string) => void = (pixelMap: image.PixelMap, url: string) => { + this.thumbnail = pixelMap + this.thumbnailUrl = url + } + @StorageLink('captureClick') captureClickFlag: number = 0; + + aboutToAppear(): void { + this.photoManager.setCallback(this.setThumbnail); + this.videoManager.setVideoCallback(this.setThumbnail); + } + + @Builder + photoButton() { + Column() { + Column() + .width(48) + .height(48) + .borderRadius('50%') + .border({ + color: Color.White, + width: 24 + }) + } + .id('Capture') + .width(64) + .height(64) + .borderRadius('50%') + .border({ + color: Color.White, + width: 1 + }) + .justifyContent(FlexAlign.Center) + .onClick(() => { + if (this.photoDelayTime) { + this.isDelayTakePhoto = true; + this.photoRemainder = this.photoDelayTime; + this.photoDelayTimer = setInterval(()=>{ + this.photoRemainder--; + if(this.photoRemainder === 0){ + this.photoManager.capture(this.previewVM.isFront); + this.captureClickFlag++; + this.isDelayTakePhoto = false; + clearTimeout(this.photoDelayTimer); + } + },1000) + } else { + this.photoManager.capture(this.previewVM.isFront); + this.captureClickFlag++; + } + }) + } + + @Builder + videoStartButton() { + Column() { + Column() + .width(52) + .height(52) + .backgroundColor(Color.Red) + .borderRadius('50%') + .border({ + color: Color.White, + width: 8 + }) + } + .id('VideoStartButton') + .width(64) + .height(64) + .borderRadius('50%') + .border({ + color: Color.White, + width: 1 + }) + .justifyContent(FlexAlign.Center) + .onClick(() => { + this.videoManager.start(this.previewVM.isFront); + }) + } + + @Builder + videoStopButton() { + Column() { + Column() + .width(28) + .height(28) + .borderRadius(10) + .backgroundColor(Color.Red) + } + .id('VideoStopButton') + .width(64) + .height(64) + .borderRadius('50%') + .border({ + color: Color.White, + width: 1 + }) + .justifyContent(FlexAlign.Center) + .onClick(async () => { + if (this.videoManager.state === AVRecorderState.STARTED || this.videoManager.state === AVRecorderState.PAUSED) { + await this.videoManager.stop(); + await this.cameraManager.release(); + const cameraPosition = this.previewVM.getCameraPosition(); + const sceneMode = this.previewVM.getSceneMode(); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + this.syncButtonSettings(); + } + }) + } + + @Builder + videoPauseButton() { + SymbolGlyph($r('sys.symbol.pause')) + .fontColor([Color.White]) + .fontSize(22) + .fontWeight(FontWeight.Bolder) + .padding(11) + .borderWidth(1) + .borderColor(Color.White) + .borderRadius('50%') + .symbolEffect(new ReplaceSymbolEffect(EffectScope.WHOLE), true) + .onClick(async () => { + this.videoManager.pause(); + }) + } + + @Builder + videoResumeButton() { + SymbolGlyph($r('sys.symbol.play')) + .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR) + .fontColor([Color.White]) + .fontSize(22) + .padding(11) + .borderWidth(1) + .borderColor(Color.White) + .borderRadius('50%') + .onClick(async () => { + this.videoManager.resume(); + }) + } + + @Builder + thumbnailButton() { + Image(this.thumbnail) + .id('Thumbnail') + .width(48) + .height(48) + .borderRadius('50%') + .borderWidth(this.thumbnail ? 1 : 0) + .borderColor(Color.White) + .clip(true) + .onClick(()=>{ + if(this.thumbnailUrl){ + this.context.startAbility({ + parameters: { uri: this.thumbnailUrl }, + action: 'ohos.want.action.viewData', + bundleName: 'com.huawei.hmos.photos', + abilityName: 'com.huawei.hmos.photos.MainAbility' + }); + } + }) + } + + @Builder + delayTakePhotoCancelButton() { + SymbolGlyph($r('sys.symbol.pause')) + .fontColor([Color.White]) + .fontSize(22) + .fontWeight(FontWeight.Bolder) + .padding(11) + .borderWidth(1) + .borderColor(Color.White) + .borderRadius('50%') + .symbolEffect(new ReplaceSymbolEffect(EffectScope.WHOLE), true) + .onClick(async () => { + this.isDelayTakePhoto = false; + clearTimeout(this.photoDelayTimer); + this.photoRemainder = 0; + }) + } + + // [Start toggleCameraPositionButton] + @Builder + toggleCameraPositionButton() { + Image($r('app.media.toggle_position')) + .width(48) + .height(48) + .onClick(async () => { + // [StartExclude toggleCameraPositionButton] + this.previewVM.openPreviewBlur(); + this.previewVM.rotatePreviewBlur(); + // [EndExclude toggleCameraPositionButton] + this.previewVM.isFront = !this.previewVM.isFront; + const cameraPosition = this.previewVM.getCameraPosition(); + const sceneMode = this.previewVM.getSceneMode(); + await this.cameraManager.release(); + await this.cameraManager.start(this.previewVM.surfaceId, cameraPosition, sceneMode, this.previewVM.getProfile); + // [StartExclude toggleCameraPositionButton] + this.syncButtonSettings(); + // [EndExclude toggleCameraPositionButton] + }) + } + // [End toggleCameraPositionButton] + + build() { + Row() { + this.thumbnailButton() + if (this.previewVM.isPhotoMode()) { + this.photoButton() + } else { + if (this.videoManager.isRecording()) { + this.videoStopButton() + } else { + this.videoStartButton() + } + } + if (!this.videoManager.isRecording()) { + this.toggleCameraPositionButton() + } + if (this.previewVM.isVideoMode() && this.videoManager.state === AVRecorderState.STARTED) { + this.videoPauseButton() + } else if (this.previewVM.isVideoMode() && this.videoManager.state === AVRecorderState.PAUSED) { + this.videoResumeButton() + } + } + .justifyContent(FlexAlign.SpaceAround) + .id('operateButtonsView') + .alignRules({ + bottom: { anchor: '__container__', align: VerticalAlign.Bottom }, + middle: { anchor: '__container__', align: HorizontalAlign.Center }, + }) + .margin({ bottom: 90 }) + .width('90%') + } +} + +export default OperateButtonsView; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/SettingButtonsView.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/SettingButtonsView.ets new file mode 100644 index 000000000..e388a0dea --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/SettingButtonsView.ets @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { camera } from '@kit.CameraKit'; +import { AVRecorderState, CameraManager, PhotoManager, PreviewManager, VideoManager } from 'camera'; +import { showToast } from '../utils/CommonUtil'; +import PreviewViewModel from '../viewmodels/PreviewViewModel'; + +interface FlashItem { + mode: camera.FlashMode; + image: Resource; + title: ResourceStr; + toast: ResourceStr; +} + +@Component +struct SettingButtonsView { + private flashItems: FlashItem[] = [ + { + mode: camera.FlashMode.FLASH_MODE_CLOSE, + image: $r('sys.symbol.camera_flash_slash'), + title: 'off', + toast: $r('app.string.flash_close') + }, + { + mode: camera.FlashMode.FLASH_MODE_OPEN, + image: $r('sys.symbol.camera_flash'), + title: 'on', + toast: $r('app.string.flash_open') + }, + { + mode: camera.FlashMode.FLASH_MODE_AUTO, + image: $r('sys.symbol.camera_flash_auto'), + title: 'auto', + toast: $r('app.string.flash_auto') + }, + { + mode: camera.FlashMode.FLASH_MODE_ALWAYS_OPEN, + image: $r('sys.symbol.lightbulb_1'), + title: 'always_on', + toast: $r('app.string.flash_always') + } + ]; + private photoFlashModes: camera.FlashMode[] = [ + camera.FlashMode.FLASH_MODE_CLOSE, + camera.FlashMode.FLASH_MODE_OPEN, + camera.FlashMode.FLASH_MODE_AUTO, + camera.FlashMode.FLASH_MODE_ALWAYS_OPEN + ]; + private videoFlashModes: camera.FlashMode[] = [ + camera.FlashMode.FLASH_MODE_CLOSE, + camera.FlashMode.FLASH_MODE_ALWAYS_OPEN + ]; + @State flashMode: camera.FlashMode = camera.FlashMode.FLASH_MODE_CLOSE; + @Link isLivePhoto: boolean; + @Require cameraManager: CameraManager; + @Require previewManager: PreviewManager; + @Require photoManager: PhotoManager; + @Link videoManager: VideoManager; + @Link photoDelayTime: number; + @State isStabilizationEnabled: boolean = false; + @Link isSinglePhoto: boolean; + @Link previewVM: PreviewViewModel; + + getFlashItem(mode: camera.FlashMode) { + return this.flashItems.find(item => item.mode === mode); + } + + @Builder + flashButton(flashModes: camera.FlashMode[]) { + SymbolGlyph(this.getFlashItem(this.flashMode)?.image) + .fontSize(22) + .fontColor([Color.White]) + .bindMenu(flashModes.map(mode => { + const flashItem = this.getFlashItem(mode)!; + const menuElement: MenuElement = { + value: flashItem.title, + action: () => { + this.flashMode = mode!; + this.cameraManager.setFlashMode(mode); + showToast(this.getUIContext(), flashItem.toast); + } + }; + return menuElement; + })) + } + + @Builder + videoTimerBuilder() { + if (this.videoManager.isRecording()) { + Row({ space: 5 }) { + SymbolGlyph(this.videoManager.state === AVRecorderState.STARTED ? $r('sys.symbol.record_circle') : + $r('sys.symbol.pause')) + .fontSize(22) + .fontColor(this.videoManager.state === AVRecorderState.STARTED ? [Color.Red, 'rgba(255,0,0,0)'] : + [Color.White]) + .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR) + Text(this.videoManager.state === AVRecorderState.STARTED ? $r('app.string.recording') : $r('app.string.paused')) + .fontColor(Color.White) + .fontSize(12) + } + } + } + + @Builder + livePhotoButton() { + SymbolGlyph(this.isLivePhoto + ? $r('sys.symbol.livephoto') + : $r('sys.symbol.livephoto_slash')) + .onClick(() => { + this.isLivePhoto = !this.isLivePhoto; + this.photoManager.enableMovingPhoto(this.isLivePhoto); + const message = this.isLivePhoto ? $r('app.string.moving_open') : $r('app.string.moving_close'); + showToast(this.getUIContext(), message); + }) + .fontSize(22) + .fontColor([Color.White]) + } + + @Builder + rateButton() { + if (this.previewVM.rates) { + Text(`${this.previewVM.currentRate} fps`) + .fontColor(Color.White) + .fontSize(16) + .bindMenu(this.previewVM.rates.map(rate => { + const menuElement: MenuElement = { + value: rate + 'fps', + action: () => { + this.previewManager.setFrameRate(rate, rate); + this.previewVM.currentRate = rate; + showToast(this.getUIContext(), $r('app.string.preview_rate', rate + 'fps')); + } + }; + return menuElement; + })) + } + } + + @Builder + delayPhotoButton(photoDelayTimeElements: MenuElement[]) { + if (this.photoDelayTime) { + Text(`${this.photoDelayTime}s`) + .fontColor(Color.White) + .fontSize(16) + .bindMenu(photoDelayTimeElements) + } else { + SymbolGlyph($r('sys.symbol.time_lapse')) + .fontSize(22) + .fontColor([Color.White]) + .bindMenu(photoDelayTimeElements) + } + } + + getPhotoDelayTimeElements(): MenuElement[] { + const menuTextMap: Map = new Map([ + ['off', 0], + ['2s', 2], + ['5s', 5], + ['10s', 10] + ]) + return Array.from(menuTextMap.keys()).map(text => { + const time = menuTextMap.get(text); + const menuElement: MenuElement = { + value: text, + action: () => { + this.photoDelayTime = time!; + const message = time ? $r('app.string.delay', text) : $r('app.string.delay_close'); + showToast(this.getUIContext(), message); + } + }; + return menuElement; + }); + } + + @Builder + stabilizationButton() { + SymbolGlyph(this.isStabilizationEnabled + ? $r('sys.symbol.motion_stabilization') + : $r('sys.symbol.motion_stabilization_slash')) + .onClick(() => { + this.isStabilizationEnabled = !this.isStabilizationEnabled; + this.cameraManager.setVideoStabilizationMode(camera.VideoStabilizationMode.AUTO); + const message = this.isStabilizationEnabled ? $r('app.string.stabilization_enable') : $r('app.string.stabilization_disabled'); + // showToast(this.getUIContext(), message); + }) + .fontSize(22) + .fontColor([Color.White]) + } + + @Builder + togglePhotoModeButton() { + SymbolGlyph(this.isSinglePhoto + ? $r('sys.symbol.picture') + : $r('sys.symbol.picture_on_square_1')) + .onClick(() => { + this.isSinglePhoto = !this.isSinglePhoto; + this.photoManager.setPhotoOutputCallback(this.isSinglePhoto); + if (this.isSinglePhoto) { + this.isLivePhoto = false; + } + this.photoManager.enableMovingPhoto(this.isLivePhoto); + const message = this.isSinglePhoto ? $r('app.string.photo_single') : $r('app.string.photo_double'); + showToast(this.getUIContext(), message); + }) + .fontSize(22) + .fontColor([Color.White]) + } + + build() { + Row() { + if (this.previewVM.isPhotoMode()) { + this.rateButton() + this.flashButton(this.photoFlashModes) + this.delayPhotoButton(this.getPhotoDelayTimeElements()) + if (!this.isSinglePhoto) { + this.livePhotoButton() + } + this.togglePhotoModeButton() + } else { + if (this.videoManager.isRecording()) { + this.videoTimerBuilder() + } else { + this.rateButton() + this.flashButton(this.videoFlashModes) + this.stabilizationButton() + } + } + } + .id('settingButtonsView') + .width('100%') + .margin({ top: 50 }) + .justifyContent(FlexAlign.SpaceAround) + .alignRules({ top: { anchor: '__container__', align: VerticalAlign.Top } }) + } +} + +export default SettingButtonsView; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ZoomButtonsView.ets b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ZoomButtonsView.ets new file mode 100644 index 000000000..ccdef4750 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/ets/views/ZoomButtonsView.ets @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 ("the License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { CameraManager } from 'camera'; +import { findRangeIndex, toFixed } from '../utils/CommonUtil'; + +@Component +struct ZoomButtonsView { + @Prop @Require zooms: number[]; + @Prop @Require zoomRange: number[] = []; + @Link currentZoom: number; + @Require cameraManager: CameraManager; + + getZoomButtonText(zoom: number, index: number): string { + const minZoom = this.zoomRange[0]; + const currentZoomIndex: number = findRangeIndex(this.currentZoom, this.zooms); + if (index === 0 && (this.currentZoom === minZoom || currentZoomIndex !== index)) { + return 'w'; + } + if (this.currentZoom === zoom || currentZoomIndex !== index) { + return `${zoom}x`; + } + return `${toFixed(this.currentZoom, 1)}x`; + } + + getZoomButtonBorderWidth(index: number): number { + const currentZoomIndex: number = findRangeIndex(this.currentZoom, this.zooms); + return currentZoomIndex === index ? 1.5 : 0; + } + + build() { + Row({ space: 15 }) { + ForEach(this.zooms, (zoom: number, index: number) => { + Text(this.getZoomButtonText(zoom, index)) + .width(36) + .height(36) + .fontColor(Color.White) + .fontSize(10) + .fontWeight(FontWeight.Bold) + .borderWidth(this.getZoomButtonBorderWidth(index)) + .borderColor(Color.White) + .borderRadius('50%') + .textAlign(TextAlign.Center) + .onClick(() => { + this.cameraManager.setSmoothZoom(zoom) + this.currentZoom = zoom + }) + }, (zoom: number) => zoom.toString()) + } + .margin({ bottom: 40 }) + .alignRules({ + bottom: { anchor: 'modeButtonsView', align: VerticalAlign.Top }, + middle: { anchor: 'modeButtonsView', align: HorizontalAlign.Center } + }) + } +} +export default ZoomButtonsView; \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/module.json5 b/CameraKit/RotationDisplayCamera/entry/src/main/module.json5 new file mode 100644 index 000000000..95172c683 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/module.json5 @@ -0,0 +1,111 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "follow_desktop" + } + ], + // [Start permissions] + // [Start permissions_acc] + "requestPermissions": [ + // [StartExclude permissions_acc] + { + "name": "ohos.permission.CAMERA", + "reason": "$string:permission_CAMERA", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + // [StartExclude permissions] + { + "name": "ohos.permission.MICROPHONE", + "reason": "$string:reason_microphone", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason": "$string:reason_media_location", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.WRITE_IMAGEVIDEO", + "reason": "$string:reason_write_imagevideo", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.READ_IMAGEVIDEO", + "reason": "$string:reason_read_imagevideo", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + { + "name": "ohos.permission.APPROXIMATELY_LOCATION", + "reason": "$string:permission_LOCATION", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + }, + // [EndExclude permissions_acc] + { + "name": "ohos.permission.ACCELEROMETER", + "reason": "$string:permission_SENSOR", + "usedScene": { + "abilities": [ + "EntryAbility" + ] + } + } + // [EndExclude permissions] + ] + // [End permissions] + // [End permissions_acc] + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/color.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/float.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/float.json new file mode 100644 index 000000000..33ea22304 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/float.json @@ -0,0 +1,8 @@ +{ + "float": [ + { + "name": "page_text_font_size", + "value": "50fp" + } + ] +} diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/string.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..32d0de3f6 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/element/string.json @@ -0,0 +1,140 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "CustomCamera" + }, + { + "name": "permission_CAMERA", + "value": "For camera operations" + }, + { + "name": "reason_microphone", + "value": "For camera video recording" + }, + { + "name": "reason_media_location", + "value": "For scenarios where the camera retrieves media information" + }, + { + "name": "reason_write_imagevideo", + "value": "For reading and writing media files with the camera" + }, + { + "name": "reason_read_imagevideo", + "value": "For camera media file read/write" + }, + { + "name": "permission_SENSOR", + "value": "For sensors" + }, + { + "name": "recording", + "value": "Recording in progress" + }, + { + "name": "paused", + "value": "Paused" + }, + { + "name": "wakeup_text", + "value": "Tap the screen to wake up the camera" + }, + { + "name": "photo", + "value": "Photo" + }, + { + "name": "video", + "value": "Video" + }, + { + "name": "preview_rate", + "value": "Preview frame rate%d" + }, + { + "name": "delay", + "value": "Time-lapse%d" + }, + { + "name": "delay_close", + "value": "Off time-lapse" + }, + { + "name": "moving_open", + "value": "Live photo mode is on" + }, + { + "name": "moving_close", + "value": "Live photo mode is off" + }, + { + "name": "photo_single", + "value": "Single-segment shooting" + }, + { + "name": "photo_double", + "value": "Dual-segment shooting" + }, + { + "name": "stabilization_enable", + "value": "Video stabilization is on" + }, + { + "name": "stabilization_disabled", + "value": "Video stabilization is off" + }, + { + "name": "grid_line_open", + "value": "Grid lines are enabled" + }, + { + "name": "grid_line_close", + "value": "Grid lines are disabled" + }, + { + "name": "level_open", + "value": "The spirit level is enabled" + }, + { + "name": "level_close", + "value": "The spirit level is disabled" + }, + { + "name": "flash_auto", + "value": "Flash is in auto mode" + }, + { + "name": "flash_close", + "value": "The flash is off" + }, + { + "name": "flash_always", + "value": "The flash is always on" + }, + { + "name": "flash_open", + "value": "The flash is on" + }, + { + "name": "preview_image_open", + "value": "Dual-channel preview has been enabled" + }, + { + "name": "preview_image_close", + "value": "Dual-channel preview has been disabled" + }, + { + "name": "permission_LOCATION", + "value": "For location" + } + ] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/background.png b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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 literal 0 HcmV?d00001 diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/flash_2s.png b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/flash_2s.png new file mode 100644 index 0000000000000000000000000000000000000000..183c0ec5c8b99261dbf6130373cb60b08534f672 GIT binary patch literal 1557 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 literal 0 HcmV?d00001 diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/focus_box.png b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/focus_box.png new file mode 100644 index 0000000000000000000000000000000000000000..7a5d9b649e08465de0e8e8883a9a37d7c3bb9f36 GIT binary patch literal 991 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/toggle_position.png b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/media/toggle_position.png new file mode 100644 index 0000000000000000000000000000000000000000..0843141ece2b81e910903dcd2b153f37ee4bf612 GIT binary patch literal 2908 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 literal 0 HcmV?d00001 diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/backup_config.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/main_pages.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..1898d94f5 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/dark/element/color.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/dark/element/color.json new file mode 100644 index 000000000..79b11c274 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/en_US/element/string.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 000000000..84573dc11 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,140 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "CustomCamera" + }, + { + "name": "permission_CAMERA", + "value": "For camera operations" + }, + { + "name": "reason_microphone", + "value": "For camera video recording" + }, + { + "name": "reason_media_location", + "value": "For scenarios where the camera retrieves media information" + }, + { + "name": "reason_write_imagevideo", + "value": "For reading and writing media files with the camera" + }, + { + "name": "reason_read_imagevideo", + "value": "For camera media file read/write" + }, + { + "name": "permission_SENSOR", + "value": "For sensors" + }, + { + "name": "recording", + "value": "Recording in progress" + }, + { + "name": "paused", + "value": "Paused" + }, + { + "name": "wakeup_text", + "value": "Tap the screen to wake up the camera" + }, + { + "name": "photo", + "value": "Photo" + }, + { + "name": "video", + "value": "Video" + }, + { + "name": "preview_rate", + "value": "Preview frame rate%d" + }, + { + "name": "delay", + "value": "Time-lapse%d" + }, + { + "name": "delay_close", + "value": "Off time-lapse" + }, + { + "name": "moving_open", + "value": "Live photo mode is on" + }, + { + "name": "moving_close", + "value": "Live photo mode is off" + }, + { + "name": "photo_single", + "value": "Single-segment shooting" + }, + { + "name": "photo_double", + "value": "Dual-segment shooting" + }, + { + "name": "stabilization_enable", + "value": "Video stabilization is on" + }, + { + "name": "stabilization_disabled", + "value": "Video stabilization is off" + }, + { + "name": "grid_line_open", + "value": "Grid lines are enabled." + }, + { + "name": "grid_line_close", + "value": "Grid lines are disabled." + }, + { + "name": "level_open", + "value": "The spirit level is enabled" + }, + { + "name": "level_close", + "value": "The spirit level is disabled" + }, + { + "name": "flash_auto", + "value": "Flash is in auto mode" + }, + { + "name": "flash_close", + "value": "The flash is off." + }, + { + "name": "flash_always", + "value": "The flash is always on" + }, + { + "name": "flash_open", + "value": "The flash is on" + }, + { + "name": "preview_image_open", + "value": "Dual-channel preview has been enabled" + }, + { + "name": "preview_image_close", + "value": "Dual-channel preview has been disabled" + }, + { + "name": "permission_LOCATION", + "value": "For location" + } + ] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/main/resources/zh_CN/element/string.json b/CameraKit/RotationDisplayCamera/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 000000000..fc4e395ef --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,140 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "CameraKitSample" + }, + { + "name": "permission_CAMERA", + "value": "用于相机操作" + }, + { + "name": "reason_microphone", + "value": "用于相机录像场景" + }, + { + "name": "reason_media_location", + "value": "用于相机获取媒体信息场景" + }, + { + "name": "reason_write_imagevideo", + "value": "用于相机读写媒体文件" + }, + { + "name": "reason_read_imagevideo", + "value": "用于相机读写媒体文件" + }, + { + "name": "permission_SENSOR", + "value": "用于传感器" + }, + { + "name": "recording", + "value": "录制中" + }, + { + "name": "paused", + "value": "已暂停" + }, + { + "name": "wakeup_text", + "value": "点击屏幕唤醒相机" + }, + { + "name": "photo", + "value": "拍照" + }, + { + "name": "video", + "value": "录像" + }, + { + "name": "preview_rate", + "value": "预览帧率%d" + }, + { + "name": "delay", + "value": "延时拍照%d" + }, + { + "name": "delay_close", + "value": "延时拍照关闭" + }, + { + "name": "moving_open", + "value": "动态拍照已开启" + }, + { + "name": "moving_close", + "value": "动态拍照已关闭" + }, + { + "name": "photo_single", + "value": "单段拍照" + }, + { + "name": "photo_double", + "value": "双段拍照" + }, + { + "name": "stabilization_enable", + "value": "录像防抖已开启" + }, + { + "name": "stabilization_disabled", + "value": "录像防抖已关闭" + }, + { + "name": "grid_line_open", + "value": "网格线已开启" + }, + { + "name": "grid_line_close", + "value": "网格线已关闭" + }, + { + "name": "level_open", + "value": "水平仪已开启" + }, + { + "name": "level_close", + "value": "水平仪已关闭" + }, + { + "name": "flash_auto", + "value": "闪关灯已自动" + }, + { + "name": "flash_close", + "value": "闪光灯已关闭" + }, + { + "name": "flash_always", + "value": "闪光灯已常亮" + }, + { + "name": "flash_open", + "value": "闪光灯已开启" + }, + { + "name": "preview_image_open", + "value": "双路预览已开启" + }, + { + "name": "preview_image_close", + "value": "双路预览已关闭" + }, + { + "name": "permission_LOCATION", + "value": "用于地理位置" + } + ] +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/Ability.test.ets b/CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 000000000..b5f95e765 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import Base from '@ohos.base'; +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; +import { PermissionRequestResult } from '@ohos.abilityAccessCtrl'; +import { Permissions } from '@kit.AbilityKit'; +import { Driver, ON, MatchPattern, Component } from '@ohos.UiTest'; +import fs from '@ohos.file.fs'; +import Want from '@ohos.app.ability.Want'; + +const TAG = 'abilityTest'; +const domain: number = 0x0000; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('captureTest', 0, async () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + try { + let want: Want = { + bundleName: 'com.example.CameraKit', + abilityName: 'EntryAbility' + }; + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + abilityDelegator.startAbility(want, (err: Base.BusinessError) => { + hilog.info(domain, TAG, 'StartAbility get err ' + JSON.stringify(err)); + // expect(err).assertNull(); + }) + + console.info('%{public}s', ' beforeAll 4'); + let driver = Driver.create(); + await driver.delayMs(1000); + let permissionButton: Component | null = null; + for (let i = 0; i < 3; i++) { + permissionButton = await driver.waitForComponent(ON.text('允许', MatchPattern.EQUALS), 1000); + console.info('captureTest btn1' + JSON.stringify(permissionButton)); + if (permissionButton != null) { + await permissionButton.click(); + console.info('captureTest after permissionButton.click '); + await driver.delayMs(300); // 等待下一个权限请求弹窗出现 + } + } + permissionButton = await driver.findComponent(ON.text('仅使用期间允许', MatchPattern.EQUALS)); + await permissionButton.click(); + await driver.delayMs(300); // 等待下一个权限请求弹窗出现 + await driver.delayMs(300); + console.info('%{public}s', ' beforeAll 6'); + let btn1 = await driver.findComponent(ON.text('拍照', MatchPattern.EQUALS)); + console.info('captureTest btn1' + JSON.stringify(btn1)); + await btn1.click(); + await driver.delayMs(300); + console.info('%{public}s', ' beforeAll 8'); + let btn2 = await driver.findComponent(ON.type('Column').id('Capture')); + console.info('captureTest btn2' + JSON.stringify(btn2)); + await btn2.click(); + console.info('%{public}s', ' beforeAll 10'); + await driver.delayMs(3000); + expect(btn2 == null).assertFalse(); + await driver.delayMs(1000); + } catch (err) { + console.info(' captureTest failed, err: ' + err); + } + }) + + it('recordTest', 0, async () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + try { + let driver = Driver.create(); + await driver.delayMs(300); + let btn1 = await driver.findComponent(ON.text('录像', MatchPattern.EQUALS)); + console.info('recordTest btn1' + JSON.stringify(btn1)); + await btn1.click(); + await driver.delayMs(300); + console.info('%{public}s', ' recordTest 8'); + let btn2 = await driver.findComponent(ON.type('Column').id('VideoStartButton')); + console.info('recordTest btn2' + JSON.stringify(btn2)); + await btn2.click(); + console.info('%{public}s', ' recordTest 10'); + await driver.delayMs(3000); + let btn3 = await driver.findComponent(ON.type('Column').id('VideoStopButton')); + console.info('recordTest btn3' + JSON.stringify(btn3)); + expect(btn3 == null).assertFalse(); + await btn3.click(); + await driver.delayMs(500); + let btn4 = await driver.findComponent(ON.type('Image').id('Thumbnail')); + console.info('recordTest btn4' + JSON.stringify(btn4)); + await btn4.click(); + await driver.delayMs(500); + } catch (err) { + console.info(' recordTest failed, err: ' + err); + } + }) + }) +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/List.test.ets b/CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..6068cbde6 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,6 @@ +import abilityTest from './Ability.test'; + + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/ohosTest/module.json5 b/CameraKit/RotationDisplayCamera/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..690268727 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/ohosTest/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/CameraKit/RotationDisplayCamera/entry/src/test/List.test.ets b/CameraKit/RotationDisplayCamera/entry/src/test/List.test.ets new file mode 100644 index 000000000..bb5b5c373 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/test/List.test.ets @@ -0,0 +1,5 @@ +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/entry/src/test/LocalUnit.test.ets b/CameraKit/RotationDisplayCamera/entry/src/test/LocalUnit.test.ets new file mode 100644 index 000000000..165fc1615 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,33 @@ +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/hvigor/hvigor-config.json5 b/CameraKit/RotationDisplayCamera/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..5bebc9755 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/hvigor/hvigor-config.json5 @@ -0,0 +1,22 @@ +{ + "modelVersion": "5.0.5", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/CameraKit/RotationDisplayCamera/hvigorfile.ts b/CameraKit/RotationDisplayCamera/hvigorfile.ts new file mode 100644 index 000000000..f3cb9f1a8 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/hvigorfile.ts @@ -0,0 +1,6 @@ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/CameraKit/RotationDisplayCamera/oh-package-lock.json5 b/CameraKit/RotationDisplayCamera/oh-package-lock.json5 new file mode 100644 index 000000000..989ca2a57 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/oh-package-lock.json5 @@ -0,0 +1,21 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hypium@1.0.18": "@ohos/hypium@1.0.18" + }, + "packages": { + "@ohos/hypium@1.0.18": { + "name": "@ohos/hypium", + "version": "1.0.18", + "integrity": "sha512-UMwbHlaJ1lEaJkDoQC/NH8XztcKysKWjzwgybDHULNKP8undtPtJbFww69GhTp8EG6+NO1uXimRBUl6sBI2nWw==", + "resolved": "https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm/@ohos/hypium/-/@ohos/hypium-1.0.18.tgz", + "shasum": "cdbaf30436c45461a0c527da1aab0e916c7e1195", + "registryType": "npm" + } + } +} \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/oh-package.json5 b/CameraKit/RotationDisplayCamera/oh-package.json5 new file mode 100644 index 000000000..114bdf65f --- /dev/null +++ b/CameraKit/RotationDisplayCamera/oh-package.json5 @@ -0,0 +1,9 @@ +{ + "modelVersion": "5.0.5", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.18" + } +} diff --git a/CameraKit/RotationDisplayCamera/ohosTest.md b/CameraKit/RotationDisplayCamera/ohosTest.md new file mode 100644 index 000000000..51427de99 --- /dev/null +++ b/CameraKit/RotationDisplayCamera/ohosTest.md @@ -0,0 +1,9 @@ +# CustomCamera-master测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +|---------------|-----------|---------------------------------------------------------------|-----------|------|------| +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 拍照功能 | 进入示例应用 | 1. 点击拍照
2. 点击拍照按钮 | 拍照图片保存至图库 | 是 | Pass | +| 录制功能 | 进入示例应用 | 1. 点击录像
2. 点击录像开始按钮
3. 一段时间后点击录像停止按钮 | 录像视频保存至图库 | 是 | Pass | \ No newline at end of file diff --git a/CameraKit/RotationDisplayCamera/screenshots/devices/camera.png b/CameraKit/RotationDisplayCamera/screenshots/devices/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..a1aae63b08f301c7dcaa364233e294d6cf7e16cd GIT binary patch literal 220791 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 z�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�M}w{V^eC3q)8!C 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 literal 0 HcmV?d00001 -- Gitee From 3141fb4dc62915c5ec5c96bb22e447fd7c737b1a Mon Sep 17 00:00:00 2001 From: chinese-deer Date: Tue, 25 Nov 2025 15:48:35 +0800 Subject: [PATCH 2/2] push 2 Signed-off-by: chinese-deer --- CameraKit/RotationDisplayCamera/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CameraKit/RotationDisplayCamera/README.md b/CameraKit/RotationDisplayCamera/README.md index 7b6b827cf..15b7260e1 100644 --- a/CameraKit/RotationDisplayCamera/README.md +++ b/CameraKit/RotationDisplayCamera/README.md @@ -1,8 +1,10 @@ -## 实现自定义相机功能 +## 实现相机旋转功能 ### 介绍 -本示例基于Camera Kit相机服务,使用ArkTS API实现基础预览、预览画面调整(前后置镜头切换、闪光灯、对焦、调焦、设置曝光中心点等)、预览进阶功能(网格线、水平仪、超时暂停等)、双路预览(获取预览帧数据)、拍照(动图拍摄、延迟拍摄等)、录像等核心功能。为开发者提供自定义相机开发的完整参考与实践指导。 +本示例基于Camera Kit相机服务,使用ArkTS API实现基础预览、预览画面调整(前后置镜头切换、闪光灯、对焦、调焦、设置曝光中心点等)、预览进阶功能(网格线、水平仪、超时暂停等)、双路预览(获取预览帧数据)、拍照(动图拍摄、延迟拍摄等)、录像等核心功能。 +在前述功能的基础上,并[适配相机旋转角度](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-rotation-angle-adaptation)。 +为开发者提供自定义相机开发的完整参考与实践指导。 ### 效果预览 @@ -14,6 +16,7 @@ 3. 切换录像模式,上方按钮依次为:闪关灯设置、防抖模式设置。 4. 右侧按钮依次为:网格线、水平仪、双路预览(获取预览帧数据)。 5. 下方按钮可拍照,录像,切换前后置摄像头。 +6. 若设备支持折叠屏,在展开态时,关闭旋转锁定,旋转设备,则预览画面实现对应旋转。 ### 工程目录 @@ -61,7 +64,8 @@ ### 具体实现 1. 使用Camera Kit相关能力。 - +2. 使用`getPreviewRotation`,`getPhotoRotation`,`getVideoRotation`等接口获取预览、拍照和录像的旋转角度,并通过`setPreviewRotation`,`PhotoCaptureSetting.rotation`,`AVMetadata.videoOrientation`等接口(属性)下发预览、拍照和录像的旋转角度。 +3. 在[module.json5](./entry/src/main/module.json5)中配置`orientation`字段为`follow_desktop`,实现应用在直板机和折叠机折叠态是竖屏,在平板和折叠机展开态默认可旋转。详细配置请参考[横竖屏切换](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-landscape-and-portrait-development)。 ### 相关权限 - ohos.permission.CAMERA:用于相机操作 -- Gitee