一、概述
相機選擇器提供相機拍照與錄制的能力。應用可選擇媒體類型實現拍照和錄制的功能。調用此類接口時,應用必須在界面UIAbility中調用,否則無法啟動cameraPicker應用。
說明
本模塊首批接口從API version 11開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
二、導入模塊
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。 |
效果圖
示例代碼
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 | 是 | 返回的媒體類型。 |