当前位置: 首页 > news >正文

HarmonyOS:相机选择器

一、概述

相机选择器提供相机拍照与录制的能力。应用可选择媒体类型实现拍照和录制的功能。调用此类接口时,应用必须在界面UIAbility中调用,否则无法启动cameraPicker应用。

说明
本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

二、导入模块

import { cameraPicker as picker } from '@kit.CameraKit';
2.1 cameraPicker.pick

pick(context: Context, mediaTypes: Array<PickerMediaType>, pickerProfile: PickerProfile): Promise<PickerResult>

拉起相机选择器,根据媒体类型进入相应的模式。操作结束通过Promise形式获取结果。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Multimedia.Camera.Core

参数:

参数名类型必填说明
contextContext应用上下文。
mediaTypesArray<PickerMediaType>媒体类型。
pickerProfilePickerProfilepickerProfile对象。

返回值:

类型说明
Promise<PickerResult>使用Promise方式获取相机选择器的处理结果。返回值为PickerResult。

示例代码

在这里插入图片描述

import { cameraPicker as picker } from '@kit.CameraKit';
import { camera } from '@kit.CameraKit';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let mContext = getContext(this) as common.Context;async function testCameraPicker() {try {let pickerProfile: picker.PickerProfile = {cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK};let pickerResult: picker.PickerResult = await picker.pick(mContext,[picker.PickerMediaType.PHOTO, picker.PickerMediaType.VIDEO], pickerProfile);console.log("相机选择器的处理结果 pickerResult is:" + JSON.stringify(pickerResult));} catch (error) {let err = error as BusinessError;console.error(`相机选择器的处理结果 失败. 错误码 code: ${err.code}`);}
}

三、PickerMediaType

枚举,相机选择器的媒体类型。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Multimedia.Camera.Core

名称说明
PHOTOphoto拍照模式
VIDEOvideo录制模式

四、PickerProfile

相机选择器的配置信息。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Multimedia.Camera.Core

名称类型必填说明
cameraPositioncamera.CameraPosition相机的位置。
saveUristring保存配置信息的uri,默认值请参考文件uri。
videoDurationnumber录制的最大时长(单位:秒)。

五、PickerResult

相机选择器的处理结果。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.Multimedia.Camera.Core

名称类型必填说明
resultCodenumber处理的结果,成功返回0,失败返回-1。
resultUristring返回的uri地址。若saveUri为空,resultUri为公共媒体路径。若saveUri不为空且具备写权限,resultUri与saveUri相同。若saveUri不为空且不具备写权限,则无法获取到resultUri。
mediaTypePickerMediaType返回的媒体类型。
http://www.xdnf.cn/news/624313.html

相关文章:

  • 人脸识别流程与算法对比报告
  • RPA+电子处方+在线问诊:数字药店APP智能化源码开发方案探索
  • MybatisPlus入门
  • (9)-java+ selenium->元素定位之By name
  • MVCC实现原理
  • TestHubo V1.0.8版本发布,支持按模块树筛选用例,让查询更便捷
  • Todesk 软件被锁定,不记得安全密码也进不去软件改不了问题解决
  • DVWA文件上传笔记
  • SDL2常用函数:SDL_Surface 数据结构及使用介绍
  • Java核心基础
  • Python爬虫实战:研究Newspaper框架相关技术
  • [创业之路-376]:企业战略管理案例分析-战略制定/设计-市场洞察“五看”:看宏观之当前的社会发展趋势与战略应对
  • AtCoder Beginner Contest 407(ABCDE)
  • ⭐️⭐️⭐️白嫖的阿里云认证⭐️⭐️⭐️ 第三弹【课时2:RAG应用的构建和优化】for「大模型Clouder认证:RAG应用构建及优化」
  • 【Excel 支持正则的方法】解决VBA引入正则的方法和步骤
  • MFC:获取所有打印机的名称(打印机模块-1)
  • OpenHarmony外设驱动使用 (十四),WLAN
  • 基于51单片机红外人体检测、防盗报警
  • 【C/C++】线程状态以及转换
  • RabbitMQ 概述与安装
  • Spring AI 之结构化输出转换器
  • Python实现对大批量Word文档进行自动添加页码(16)
  • 使用腾讯云3台轻量云服务器快速部署K8s集群实战
  • 如何制作可以本地联网搜索的MCP,并让本地Qwen3大模型调用搜索回答用户问题?
  • Appium+python自动化(五)- 模拟器
  • axios报错: Uncaught ReferenceError: axios is not defined
  • Qt基础:数据容器类
  • 算法中的数学:费马小定理
  • redis配置带验证的主从复制
  • Windows 中动态库.dll 的 .lib 文件有什么作用?