• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)| 是    | 返回的媒体类型。                  |