From 745556404ee6d33885388e4e39308d6e594380aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E6=AD=A3=E7=9A=93?= Date: Mon, 21 Apr 2025 16:04:44 +0800 Subject: [PATCH] =?UTF-8?q?5.1=20sdk=E6=96=87=E6=A1=A3=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 叶正皓 --- .../multimedia/camera_framework/camera.h | 65 +++++++++++++++++++ .../camera_framework/camera_device.h | 3 +- .../camera_framework/camera_input.h | 1 + .../camera_framework/camera_manager.h | 35 ++++++++++ .../camera_framework/capture_session.h | 63 ++++++++++++++++++ .../camera_framework/metadata_output.h | 1 + .../camera_framework/photo_native.h | 1 + .../camera_framework/photo_output.h | 15 +++++ .../camera_framework/preview_output.h | 29 +++++++++ .../camera_framework/video_output.h | 39 +++++++++++ 10 files changed, 251 insertions(+), 1 deletion(-) diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera.h b/zh-cn/native_sdk/multimedia/camera_framework/camera.h index ec368b99..17eb847a 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera.h @@ -31,6 +31,7 @@ * @brief 声明相机的基本概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -994,6 +995,70 @@ typedef struct Camera_FrameShutterEndInfo { int32_t captureId; } Camera_FrameShutterEndInfo; +/** + * @brief 折叠状态枚举。 + * + * @since 13 + * @version 1.0 + */ +typedef enum Camera_FoldStatus { + /** + * 不可折叠状态。 + */ + NON_FOLDABLE = 0, + + /** + * 展开状态。 + */ + EXPANDED = 1, + + /** + * 折叠状态。 + */ + FOLDED = 2 +} Camera_FoldStatus; + +/** + * @brief 折叠状态信息。 + * + * @since 13 + * version 1.0 + */ +typedef struct Camera_FoldStatusInfo { + /** + * 相机实例列表。 + */ + Camera_Device** supportedCameras; + + /** + * 相机列表数量。 + */ + uint32_t cameraSize; + + /** + * 当前折叠状态。 + */ + Camera_FoldStatus foldStatus; +} Camera_FoldStatusInfo; + +/** + * @brief 自动设备切换状态信息。 + * + * @since 13 + * @version 1.0 + */ +typedef struct Camera_AutoDeviceSwitchStatusInfo { + /** + * 设备是否已切换。 + */ + bool isDeviceSwitched; + + /** + * 设备功能是否改变。 + */ + bool isDeviceCapabilityChanged; +} Camera_AutoDeviceSwitchStatusInfo; + /** * @brief 创建CameraManager实例。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h b/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h index 483dd347..a85999c3 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h @@ -21,7 +21,7 @@ * * @syscap SystemCapability.Multimedia.Camera.Core * - * @since 11 + * @since 12 * @version 1.0 */ @@ -31,6 +31,7 @@ * @brief 声明相机的基本概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 12 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h b/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h index f1e3847d..cb1140b9 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h @@ -31,6 +31,7 @@ * @brief 声明相机输入概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h b/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h index 4d507a30..d7b7441b 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h @@ -31,6 +31,7 @@ * @brief 声明相机管理器的概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -71,6 +72,16 @@ typedef void (*OH_CameraManager_StatusCallback)(Camera_Manager* cameraManager, C */ typedef void (*OH_CameraManager_TorchStatusCallback)(Camera_Manager* cameraManager, Camera_TorchStatusInfo* status); +/** + * @brief 相机管理器折叠状态信息回调。 + * + * @param cameraManager 传递回调的{@link Camera_Manager}。 + * @param foldStatusInfo 设备的折叠状态信息{@link Camera_FoldStatusInfo}。 + * @since 13 + */ +typedef void (*OH_CameraManager_OnFoldStatusInfoChange)(Camera_Manager* cameraManager, + Camera_FoldStatusInfo* foldStatusInfo); + /** * @brief 相机设备状态的回调。 * @@ -131,6 +142,30 @@ Camera_ErrorCode OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager* ca Camera_ErrorCode OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager* cameraManager, OH_CameraManager_TorchStatusCallback torchStatusCallback); +/** + * @brief 注册折叠状态信息变更事件回调。 + * + * @param cameraManager 相机管理器实例{@link Camera_Manager}。 + * @param foldStatusInfoCallback 要注册的折叠状态信息变更事件回调{@link OH_CameraManager_OnFoldStatusInfoChange}。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback); + +/** + * @brief 注销折叠状态信息变更事件回调。 + * + * @param cameraManager 相机管理器实例{@link Camera_Manager}。 + * @param foldStatusInfoCallback 要注销的折叠状态信息变更事件回调{@link OH_CameraManager_OnFoldStatusInfoChange}。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback); + /** * @brief 获取支持相机的描述。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h b/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h index 79f59111..bf80351d 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h @@ -31,6 +31,7 @@ * @brief 声明捕获会话概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -93,6 +94,16 @@ typedef void (*OH_CaptureSession_OnError)(Camera_CaptureSession* session, Camera typedef void (*OH_CaptureSession_OnSmoothZoomInfo)(Camera_CaptureSession* session, Camera_SmoothZoomInfo* smoothZoomInfo); +/** + * @brief 捕获会话设备切换状态回调。 + * + * @param session 传递回调的{@link Camera_CaptureSession}。 + * @param autoDeviceSwitchStatusInfo 回调传递的{@link Camera_AutoDeviceSwitchStatusInfo}。 + * @since 13 + */ +typedef void (*OH_CaptureSession_OnAutoDeviceSwitchStatusChange)(Camera_CaptureSession* session, + Camera_AutoDeviceSwitchStatusInfo* autoDeviceSwitchStatusInfo); + /** * @brief 捕获会话的回调。 * @@ -162,6 +173,9 @@ Camera_ErrorCode OH_CaptureSession_UnregisterSmoothZoomInfoCallback(Camera_Captu /** * @brief 设置会话模式。 + * + * 此接口不能在{@link OH_CaptureSession_BeginConfig}之后使用。 + * 建议在使用{@link OH_CameraManager_CreateCaptureSession}后立即使用此接口。 * * @param session {@link Camera_CaptureSession}实例。 * @param sceneMode {@link Camera_SceneMode}实例。 @@ -853,6 +867,55 @@ Camera_ErrorCode OH_CaptureSession_GetActiveColorSpace(Camera_CaptureSession* se Camera_ErrorCode OH_CaptureSession_SetActiveColorSpace(Camera_CaptureSession* session, OH_NativeBuffer_ColorSpace colorSpace); +/** + * @brief 注册设备切换事件回调。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param autoDeviceSwitchStatusChange 要注册的{@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange}。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_RegisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session, + OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange); + +/** + * @brief 注销设备切换事件回调。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param autoDeviceSwitchStatusChange 要取消注册的{@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange}。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_UnregisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session, + OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange); + +/** + * @brief 检查是否支持自动设备切换。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param isSupported 是否支持自动设备切换的结果。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SESSION_NOT_CONFIG} 如果捕获会话未配置。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_IsAutoDeviceSwitchSupported(Camera_CaptureSession* session, bool* isSupported); + +/** + * @brief 启用或不启用相机设备的自动切换。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param enabled 是否启用自动切换的标志。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SESSION_NOT_CONFIG} 如果捕获会话未配置。 + * {@link #CAMERA_SERVICE_FATAL_ERROR} 如果相机服务出现致命错误。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_EnableAutoDeviceSwitch(Camera_CaptureSession* session, bool enabled); + /** * @brief 设置录像质量优先级。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h b/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h index c82e7e13..c536fadc 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h @@ -31,6 +31,7 @@ * @brief 声明元数据输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h b/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h index 6251756a..29b3ca32 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h @@ -31,6 +31,7 @@ * @brief 声明相机照片概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 12 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h b/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h index ef09ec1e..e3bbe145 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h @@ -31,6 +31,7 @@ * @brief 声明拍照输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -221,6 +222,20 @@ Camera_ErrorCode OH_PhotoOutput_UnregisterCallback(Camera_PhotoOutput* photoOutp Camera_ErrorCode OH_PhotoOutput_RegisterCaptureStartWithInfoCallback(Camera_PhotoOutput* photoOutput, OH_PhotoOutput_CaptureStartWithInfo callback); +/** + * @brief 获取照片旋转角度。 + * + * @param photoOutput 用于获取照片旋转角度的{@link Camera_PhotoOutput}实例。 + * @param deviceDegree 当前设备旋转角度。 + * @param imageRotation 照片旋转角度的{@link Camera_ImageRotation}结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_PhotoOutput_GetPhotoRotation(Camera_PhotoOutput* photoOutput, int deviceDegree, + Camera_ImageRotation* imageRotation); + /** * @brief 注销拍照开始事件回调。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h b/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h index fab8db86..c61850a9 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h @@ -31,6 +31,7 @@ * @brief 声明预览输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -189,6 +190,34 @@ Camera_ErrorCode OH_PreviewOutput_GetActiveProfile(Camera_PreviewOutput* preview */ Camera_ErrorCode OH_PreviewOutput_DeleteProfile(Camera_Profile* profile); +/** + * @brief 获取预览旋转角度。 + * + * @param previewOutput 用于获取预览旋转角度的{@link Camera_PreviewOutput}实例。 + * @param displayRotation 当前显示的旋转角度。 + * @param imageRotation 预览旋转角度的{@link Camera_ImageRotation}结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_PreviewOutput_GetPreviewRotation(Camera_PreviewOutput* previewOutput, int displayRotation, + Camera_ImageRotation* imageRotation); + +/** + * @brief 设置预览旋转角度。 + * + * @param previewOutput 用于设置预览旋转角度的{@link Camera_PreviewOutput}实例。 + * @param previewRotation 预览的{@link Camera_ImageRotation}显示旋转角度。 + * @param isDisplayLocked TRUE表示显示器被锁定。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_PreviewOutput_SetPreviewRotation(Camera_PreviewOutput* previewOutput, + Camera_ImageRotation previewRotation, bool isDisplayLocked); + /** * @brief 获取支持的预览输出帧率列表。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/video_output.h b/zh-cn/native_sdk/multimedia/camera_framework/video_output.h index e1dcc5d8..a7c583e7 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/video_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/video_output.h @@ -31,6 +31,7 @@ * @brief 声明录像输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -187,6 +188,44 @@ Camera_ErrorCode OH_VideoOutput_GetActiveProfile(Camera_VideoOutput* videoOutput */ Camera_ErrorCode OH_VideoOutput_DeleteProfile(Camera_VideoProfile* profile); +/** + * @brief 检查视频输出是否支持镜像模式 + * + * @param videoOutput {@link Camera_VideoOutput}实例 + * @param isSupported 镜像模式是否支持的结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 15 + */ +Camera_ErrorCode OH_VideoOutput_IsMirrorSupported(Camera_VideoOutput* videoOutput, bool* isSupported); + +/** + * @brief 启用或禁用视频输出的镜像模式 + * + * @param videoOutput {@link Camera_VideoOutput}实例 + * @param mirrorMode 如果mirrorMode为真,则启用镜像模式,否则禁用 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 15 + */ +Camera_ErrorCode OH_VideoOutput_EnableMirror(Camera_VideoOutput* videoOutput, bool mirrorMode); + +/** + * @brief 获取视频旋转角度。 + * + * @param videoOutput 用于获取视频旋转角度的{@link Camera_VideoOutput}实例。 + * @param deviceDegree 当前设备旋转角度。 + * @param imageRotation 视频旋转角度的{@link Camera_ImageRotation}结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_VideoOutput_GetVideoRotation(Camera_VideoOutput* videoOutput, int deviceDegree, + Camera_ImageRotation* imageRotation); + /** * @brief 获取支持的视频输出帧率列表。 * -- Gitee