HarmonyOS:相机选择器

一、概述

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

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

二、导入模块

c 复制代码
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

参数:

参数名 类型 必填 说明
context Context 应用上下文。
mediaTypes Array<PickerMediaType> 媒体类型。
pickerProfile PickerProfile pickerProfile对象。

返回值:

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

示例代码

c 复制代码
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

名称 说明
PHOTO photo 拍照模式
VIDEO video 录制模式

四、PickerProfile

相机选择器的配置信息。

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

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

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

五、PickerResult

相机选择器的处理结果。

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

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

名称 类型 必填 说明
resultCode number 处理的结果,成功返回0,失败返回-1。
resultUri string 返回的uri地址。若saveUri为空,resultUri为公共媒体路径。若saveUri不为空且具备写权限,resultUri与saveUri相同。若saveUri不为空且不具备写权限,则无法获取到resultUri。
mediaType PickerMediaType 返回的媒体类型。
相关推荐
李二。15 小时前
鸿蒙原生密码保险箱 PasswordVault 应用开发实战
华为·harmonyos
小雨下雨的雨15 小时前
基于 Electron 运行时的鸿蒙PC桌面应用-安全可靠的随机密码生成工具
前端·javascript·华为·electron·前端框架·鸿蒙
科技与数码16 小时前
鸿蒙AI防诈能力:场景化防诈+换脸检测+亲情防诈
人工智能·华为·harmonyos
独特的螺狮粉16 小时前
金属硬度与熔点对照表APP - 通过鸿蒙PC Electron框架完整技术实现指南
前端·javascript·electron·前端框架·开源·鸿蒙
小菜鸟学开发16 小时前
OpenHarmony v6.1-release 编译指南
harmonyos
李二。16 小时前
鸿蒙 HarmonyOS 待办清单应用开发实战 —— 基于 ArkTS + SQLite 的完整教程
华为·sqlite·harmonyos
Pocker_Spades_A16 小时前
[鸿蒙PC命令行移植适配]移植rust三方库peep到鸿蒙PC的完整实践
华为·rust·harmonyos
EterNity_TiMe_16 小时前
[鸿蒙PC命令行移植适配]移植rust三方库grex到鸿蒙PC的完整实践
华为·rust·harmonyos
EterNity_TiMe_16 小时前
[鸿蒙PC命令行移植适配]移植rust三方库lsd到鸿蒙PC的完整实践
华为·rust·harmonyos
●VON17 小时前
AtomGit Flutter鸿蒙客户端:API客户端与网络层
flutter·华为·架构·跨平台·harmonyos·鸿蒙