HarmonyOS 鸿蒙Next createPhotoOutput方法无法设置照片分辨率

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

HarmonyOS 鸿蒙Next createPhotoOutput方法无法设置照片分辨率

通过createPhotoOutput(profile: Profile)创建拍照输出流时,自定义Profile中的size分辨率配置,发现报错提示size属性不能赋值,是只读属性。

let size: image.Size = {
width: 1080,
height: 1920
} // 提示size属性不能赋值,是只读属性 
 


更多关于HarmonyOS 鸿蒙Next createPhotoOutput方法无法设置照片分辨率的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

由于PhotoOutput中的profile属性不能自定义,只能通过getSupportedOutputCapability接口获取相机可配置的能力profile。

参考代码:

function getSupportedOutputCapability(camera: camera.CameraDevice, cameraManager: camera.CameraManager, sceneMode: camera.SceneMode): camera.CameraOutputCapability {

let cameraOutputCapability: camera.CameraOutputCapability = cameraManager.getSupportedOutputCapability(camera, sceneMode);

return cameraOutputCapability;

}

API文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-camera-0000001820881333#ZH-CN_TOPIC_0000001811317606__getsupportedoutputcapability11

PhotoOutput通过参数profile设置图片分辨率

PhotoOutput支持设置图片分辨率的api,在创建拍照输出流的时候createPhotoOutput(profile: Profile)这个方法的Profile属性就可以设置分辨率,且只能设置设备支持的profile列表中的一个。

参考代码:

function createPhotoOutput(cameraOutputCapability: camera.CameraOutputCapability, cameraManager: camera.CameraManager): camera.PhotoOutput | undefined {

let profile: camera.Profile = cameraOutputCapability.photoProfiles[0]; //设置profile信息

let photoOutput: camera.PhotoOutput | undefined = undefined;

try {

photoOutput = cameraManager.createPhotoOutput(profile);

} catch (error) {

// 失败返回错误码error.code并处理

let err = error as BusinessError;

console.error(`The createPhotoOutput call failed. error code: ${err.code}`);

}

return photoOutput;

}

更多关于HarmonyOS 鸿蒙Next createPhotoOutput方法无法设置照片分辨率的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


 createPhotoOutput 只能设置相机硬件支持的分辨率, 相机支持的分辨率,可使用

getSupportedOutputCapability 查询 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-camera-V13#getsupportedoutputcapability11

在HarmonyOS鸿蒙系统中,createPhotoOutput 方法用于创建照片输出对象,但在某些情况下可能无法直接设置照片分辨率。这通常是因为分辨率设置依赖于具体的输出配置或设备能力。

要解决这个问题,可以尝试以下几个步骤:

  1. 检查API文档:确保你使用的createPhotoOutput方法版本支持分辨率设置。如果API本身不支持,可能需要通过其他方式(如拍照参数设置)来间接调整分辨率。

  2. 使用CaptureConfig:在创建照片输出对象之前,通过CaptureConfig配置拍照参数,包括分辨率。这通常涉及设置图像的宽度和高度。

  3. 设备兼容性:不同设备对分辨率的支持可能有所不同。确保你的设备支持你想要设置的分辨率。

  4. 更新鸿蒙系统:如果你的鸿蒙系统版本较旧,可能存在一些已知的bug或限制。尝试更新到最新版本,看看问题是否得到解决。

  5. 查阅开发者社区:鸿蒙开发者社区中可能有其他开发者遇到过类似问题,并分享了解决方案。

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

回到顶部