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