HarmonyOS 鸿蒙Next 使用媒体相机拍照或者录制视频时 旋转角度如何根据当前用户的屏幕方向进行设置

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用媒体相机拍照或者录制视频时 旋转角度如何根据当前用户的屏幕方向进行设置

参考微信发送视频功能, 用户手机横着拍摄与竖着拍摄然后发送, 假设屏幕宽高比为320:480即宽小于高,  根据实际场景, 如果用户竖屏拍摄或者录制生成的图片或者视频宽高比为320:480; 但是如果用户横屏进行拍摄或者录制,那么生成的图片或者视频比例为480:320即宽大于高  所以总上, 在进行参数设置时, 以下旋转角度不能固定,那么应该怎么当前的屏幕方向进行设置呢?  拍照时:

const photoCaptureSetting: camera.PhotoCaptureSetting = {
quality: camera.QualityLevel.QUALITY_LEVEL_HIGH,
rotation: camera.ImageRotation.ROTATION_0,
// 设置旋转角度0, 这里不能写死, 应该根据实际拍摄方向 mirror, 
};
// 录制时: 
const aVRecorderConfig: media.AVRecorderConfig = {
audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC,
videoSourceType: media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV,
profile: recordProfile,
url: videoUrl,
90, // 设置录制旋转角度为90, 这里不能写死, 应该根据实际拍摄方向 
};<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>


更多关于HarmonyOS 鸿蒙Next 使用媒体相机拍照或者录制视频时 旋转角度如何根据当前用户的屏幕方向进行设置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

预览流角度固定前置摄像头得到的YUV数据顺时针旋转了90度,后置摄像头得到的YUV数据顺时针旋转了270度

请参考demo:

let displayRotation = display.getDefaultDisplaySync().rotation;
let orientation: number = 0;
if (displayRotation == 0) {
  orientation = 0;
} else if (displayRotation == 1) {
  //顺时针横屏
  orientation = 90;
} else if (displayRotation == 2) {
  //倒置竖屏
  orientation = 180;
} else if (displayRotation == 3) {
  //逆时针横屏
  orientation = 270;
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

在模块配置文件module.json5中给EntryAbility设置"orientation": “auto_rotation”,再打开手机自动旋转即可

更多关于HarmonyOS 鸿蒙Next 使用媒体相机拍照或者录制视频时 旋转角度如何根据当前用户的屏幕方向进行设置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


作为IT专家,对于HarmonyOS鸿蒙Next使用媒体相机拍照或录制视频时旋转角度的设置问题,以下给出专业解答:

在HarmonyOS鸿蒙Next系统中,媒体相机的旋转角度需根据当前用户的屏幕方向动态设置。具体实现方式如下:

  1. 获取屏幕旋转角度:通过系统API获取当前设备的屏幕旋转角度。
  2. 计算图像旋转角度:根据相机镜头安装角度和屏幕旋转角度,计算图像应旋转的角度。后置相机通常需顺时针旋转90度(竖屏时),前置相机则需顺时针旋转270度(竖屏时)。横屏时角度计算会有所不同。
  3. 设置相机参数:在拍照或录制视频前,将计算出的旋转角度设置为相机参数的一部分。

确保在module.json5文件中为应用设置“orientation”属性值为“auto_rotation”,以支持横竖屏切换。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部