1# @ohos.multimedia.cameraPicker (相机选择器) 2<!--Kit: Camera Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @qano--> 5<!--Designer: @leo_ysl--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9本模块提供相机拍照与录制的能力。应用可选择媒体类型实现拍照和录制的功能。调用此类接口时,应用必须在界面UIAbility中调用,否则无法启动cameraPicker应用。 10 11> **说明:** 12> 13> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14 15## 导入模块 16 17```ts 18import { cameraPicker as picker } from '@kit.CameraKit'; 19``` 20 21## picker.pick 22 23pick(context: Context, mediaTypes: Array\<PickerMediaType\>, pickerProfile: PickerProfile): Promise\<PickerResult\> 24 25拉起相机选择器,根据媒体类型进入相应的模式。使用Promise异步回调。 26 27**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 28 29**系统能力:** SystemCapability.Multimedia.Camera.Core 30 31**参数:** 32 33| 参数名 | 类型 | 必填 | 说明 | 34| -------------- |-------------------------------------------------| ---- | ---------------------------- | 35| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 应用上下文。 | 36| mediaTypes | Array\<[PickerMediaType](#pickermediatype)\> | 是 | 媒体类型。 | 37| pickerProfile | [PickerProfile](#pickerprofile) | 是 | pickerProfile对象。 | 38 39**返回值:** 40 41| 类型 | 说明 | 42| ----------------------------------------------- | -------------------------------------------------------------------------------------- | 43| Promise\<PickerResult\> | Promise对象,返回相机选择器的处理结果[PickerResult](#pickerresult)。 | 44 45**示例:** 46 47```ts 48import { cameraPicker as picker } from '@kit.CameraKit'; 49import { camera } from '@kit.CameraKit'; 50import { BusinessError } from '@kit.BasicServicesKit'; 51 52async function demo(context: Context) { 53 try { 54 let pickerProfile: picker.PickerProfile = { 55 cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK 56 }; 57 let pickerResult: picker.PickerResult = await picker.pick(context, 58 [picker.PickerMediaType.PHOTO, picker.PickerMediaType.VIDEO], pickerProfile); 59 console.info("the pick pickerResult is:" + JSON.stringify(pickerResult)); 60 } catch (error) { 61 let err = error as BusinessError; 62 console.error(`the pick call failed. error code: ${err.code}`); 63 } 64} 65``` 66 67## PickerMediaType 68 69枚举,相机选择器的媒体类型。 70 71**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 72 73**系统能力:** SystemCapability.Multimedia.Camera.Core 74 75| 名称 | 值 | 说明 | 76| ----------------| ---- | ---------| 77| PHOTO | 'photo' | 拍照模式。 | 78| VIDEO | 'video' | 录制模式。 | 79 80 81## PickerProfile 82 83相机选择器的配置信息。 84 85**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 86 87**系统能力:** SystemCapability.Multimedia.Camera.Core 88 89| 名称 | 类型 | 只读 | 可选 | 说明 | 90| -------------- | --------------------------------- | ----- | ----- | ------------ | 91| cameraPosition | [camera.CameraPosition](arkts-apis-camera-e.md#cameraposition) | 否 | 否 | 相机的位置。 | 92| saveUri | string | 否 | 是 | 保存配置信息的uri,默认值请参考[文件uri](../apis-core-file-kit/js-apis-file-fileuri.md#constructor10)。当前saveUri参数为可选参数,若未配置该参数,则拍摄的照片和视频会默认存入媒体库中;若不想将照片和视频存入媒体库中,请自行配置应用沙箱内的文件资源路径,如自行传入资源路径时请确保该文件存在且具备写入权限,否则会保存失败。| 93| videoDuration | number | 否 | 是 | 录制的最大时长(单位:秒)。默认为0,不设置最大录制时长。| 94 95 96## PickerResult 97 98相机选择器的处理结果。 99 100**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 101 102**系统能力:** SystemCapability.Multimedia.Camera.Core 103 104| 名称 | 类型 | 只读 | 可选 | 说明 | 105| -------------- | ---------------------------------- | ----- | ----- | -------------------------------- | 106| resultCode | number | 否 | 否 | 处理的结果,成功返回0,失败返回-1。 | 107| resultUri | string | 否 | 否 | 返回的uri地址。若saveUri为空,resultUri为公共媒体路径。若saveUri不为空且具备写权限,resultUri与saveUri相同。若saveUri不为空且不具备写权限,则无法获取到resultUri。| 108| mediaType | [PickerMediaType](#pickermediatype)| 否 | 否 | 返回的媒体类型。 |