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