HarmonyOS 拍照功能能否直接调用系统相机,还是只有通过Camera kit去自己封装

在开发拍照功能的过程中,只查询到Camera kit的相关文档,是通过Camera kit去自己实现拍照的相关功能。这边想咨询下可以直接调用系统的相机进行拍照操作。如果通过Want去调用系统相机,拍照完成能否直接拿到照片图片的回调。

HarmonyOS
2024-08-12 14:56:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

普通开发模式(输入、会话、配置、输出)请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/2_3_u76f8_u673a_u5f00_u53d1_u6307_u5bfcarkts-V5避过整套流程开发。

这部分内容要去查看Want相关资料:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-ability-want-V5

该代码可以调起系统相机:

import common from '@kit.AbilityKit'; 
import Want from '@kit.AbilityKit'; 
let context = getContext(this) as common.UIAbilityContext; 
let want: Want = { 
  action: ‘ohos.want.action.imageCapture’, 
  parameters: { 
    callBundleName: ‘com.example.myapplication’, 
    supportMultiMode: false 
  } 
};

该代码可以支持调起图库同时拿到拍摄的图片、视频的相关信息以及设置拍摄视频的最大时长。

1、把supportMultiMode改成ture可以切换模式。

2、在startAbilityForResult的回调中返回图片/视频的uri。

let context = getContext(this) as common.UIAbilityContext; 
let uri:string; 
let want: Want = { 
  action: ‘ohos.want.action.imageCapture’, 
  parameters: { 
    callBundleName: ‘com.example.myapplication’, 
    supportMultiMode: true 
  } 
}; 
context.startAbilityForResult(want, (err, data) => { 
  if (err.code) { 
    console.error(Failed to start ability for result. Code is ${err.code}, message is ${err.message}); 
    return; 
  } 
  console.info(Succeeded in starting ability for result. Data is ${JSON.stringify(data)}); 
  uri = data.want.parameters[‘resourceUri’].toString() //获取相片uri数据 
  console.log(‘uri:’, uri) 
})

拉起系统相机推荐使用功CameraPicker。

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-camerapicker-V5

分享
微博
QQ
微信
回复
2024-08-12 19:18:49
相关问题
如何调用系统相机拍照
1690浏览 • 1回复 待解决
如何调用系统相机拍照、录视频?
373浏览 • 1回复 待解决
打开相机:直接使用相机拍照能力
1614浏览 • 1回复 待解决
有哪位知道怎样调用系统相机拍照
1856浏览 • 1回复 待解决
鸿蒙可以直接调用系统相机吗?
8697浏览 • 1回复 待解决
harmonyOS基于api9如何调用相机拍照
3915浏览 • 1回复 待解决
arkts能否直接调用nodejs的接口
1905浏览 • 1回复 待解决
HarmonyOS 相机拍照模糊
513浏览 • 0回复 待解决
HarmonyOS 拉起相机拍照
374浏览 待解决