161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit CameraKit 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport type Context from './application/Context'; 2261847f8eSopenharmony_ciimport type camera from './@ohos.multimedia.camera'; 2361847f8eSopenharmony_ci 2461847f8eSopenharmony_ci/** 2561847f8eSopenharmony_ci * @namespace cameraPicker 2661847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 2761847f8eSopenharmony_ci * @since 11 2861847f8eSopenharmony_ci */ 2961847f8eSopenharmony_ci/** 3061847f8eSopenharmony_ci * @namespace cameraPicker 3161847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 3261847f8eSopenharmony_ci * @atomicservice 3361847f8eSopenharmony_ci * @since 12 3461847f8eSopenharmony_ci */ 3561847f8eSopenharmony_cideclare namespace cameraPicker { 3661847f8eSopenharmony_ci 3761847f8eSopenharmony_ci /** 3861847f8eSopenharmony_ci * Picker profile settings for take photo and record video. 3961847f8eSopenharmony_ci * 4061847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 4161847f8eSopenharmony_ci * @since 11 4261847f8eSopenharmony_ci */ 4361847f8eSopenharmony_ci /** 4461847f8eSopenharmony_ci * Picker profile settings for take photo and record video. 4561847f8eSopenharmony_ci * 4661847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 4761847f8eSopenharmony_ci * @atomicservice 4861847f8eSopenharmony_ci * @since 12 4961847f8eSopenharmony_ci */ 5061847f8eSopenharmony_ci class PickerProfile { 5161847f8eSopenharmony_ci /** 5261847f8eSopenharmony_ci * The camera position to be used. 5361847f8eSopenharmony_ci * 5461847f8eSopenharmony_ci * @type { camera.CameraPosition } 5561847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 5661847f8eSopenharmony_ci * @since 11 5761847f8eSopenharmony_ci */ 5861847f8eSopenharmony_ci /** 5961847f8eSopenharmony_ci * The camera position to be used. 6061847f8eSopenharmony_ci * 6161847f8eSopenharmony_ci * @type { camera.CameraPosition } 6261847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 6361847f8eSopenharmony_ci * @atomicservice 6461847f8eSopenharmony_ci * @since 12 6561847f8eSopenharmony_ci */ 6661847f8eSopenharmony_ci cameraPosition: camera.CameraPosition; 6761847f8eSopenharmony_ci 6861847f8eSopenharmony_ci /** 6961847f8eSopenharmony_ci * The uri of the result to be saved. 7061847f8eSopenharmony_ci * 7161847f8eSopenharmony_ci * @type { ?string } 7261847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 7361847f8eSopenharmony_ci * @since 11 7461847f8eSopenharmony_ci */ 7561847f8eSopenharmony_ci /** 7661847f8eSopenharmony_ci * The uri of the result to be saved. 7761847f8eSopenharmony_ci * 7861847f8eSopenharmony_ci * @type { ?string } 7961847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 8061847f8eSopenharmony_ci * @atomicservice 8161847f8eSopenharmony_ci * @since 12 8261847f8eSopenharmony_ci */ 8361847f8eSopenharmony_ci saveUri?: string; 8461847f8eSopenharmony_ci 8561847f8eSopenharmony_ci /** 8661847f8eSopenharmony_ci * The max duration of the video. 8761847f8eSopenharmony_ci * 8861847f8eSopenharmony_ci * @type { ?number } 8961847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 9061847f8eSopenharmony_ci * @since 11 9161847f8eSopenharmony_ci */ 9261847f8eSopenharmony_ci /** 9361847f8eSopenharmony_ci * The max duration of the video. 9461847f8eSopenharmony_ci * 9561847f8eSopenharmony_ci * @type { ?number } 9661847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 9761847f8eSopenharmony_ci * @atomicservice 9861847f8eSopenharmony_ci * @since 12 9961847f8eSopenharmony_ci */ 10061847f8eSopenharmony_ci videoDuration?: number; 10161847f8eSopenharmony_ci } 10261847f8eSopenharmony_ci 10361847f8eSopenharmony_ci /** 10461847f8eSopenharmony_ci * Enum for camera picker media type. 10561847f8eSopenharmony_ci * 10661847f8eSopenharmony_ci * @enum { string } 10761847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 10861847f8eSopenharmony_ci * @since 11 10961847f8eSopenharmony_ci */ 11061847f8eSopenharmony_ci /** 11161847f8eSopenharmony_ci * Enum for camera picker media type. 11261847f8eSopenharmony_ci * 11361847f8eSopenharmony_ci * @enum { string } 11461847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 11561847f8eSopenharmony_ci * @atomicservice 11661847f8eSopenharmony_ci * @since 12 11761847f8eSopenharmony_ci */ 11861847f8eSopenharmony_ci enum PickerMediaType { 11961847f8eSopenharmony_ci /** 12061847f8eSopenharmony_ci * Type image, picker provide an ability to take photo. 12161847f8eSopenharmony_ci * 12261847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 12361847f8eSopenharmony_ci * @since 11 12461847f8eSopenharmony_ci */ 12561847f8eSopenharmony_ci /** 12661847f8eSopenharmony_ci * Type image, picker provide an ability to take photo. 12761847f8eSopenharmony_ci * 12861847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 12961847f8eSopenharmony_ci * @atomicservice 13061847f8eSopenharmony_ci * @since 12 13161847f8eSopenharmony_ci */ 13261847f8eSopenharmony_ci PHOTO = 'photo', 13361847f8eSopenharmony_ci 13461847f8eSopenharmony_ci /** 13561847f8eSopenharmony_ci * Type video, picker provide an ability to record video. 13661847f8eSopenharmony_ci * 13761847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 13861847f8eSopenharmony_ci * @since 11 13961847f8eSopenharmony_ci */ 14061847f8eSopenharmony_ci /** 14161847f8eSopenharmony_ci * Type video, picker provide an ability to record video. 14261847f8eSopenharmony_ci * 14361847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 14461847f8eSopenharmony_ci * @atomicservice 14561847f8eSopenharmony_ci * @since 12 14661847f8eSopenharmony_ci */ 14761847f8eSopenharmony_ci VIDEO = 'video' 14861847f8eSopenharmony_ci } 14961847f8eSopenharmony_ci 15061847f8eSopenharmony_ci /** 15161847f8eSopenharmony_ci * The picker result info for pick function. 15261847f8eSopenharmony_ci * 15361847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 15461847f8eSopenharmony_ci * @since 11 15561847f8eSopenharmony_ci */ 15661847f8eSopenharmony_ci /** 15761847f8eSopenharmony_ci * The picker result info for pick function. 15861847f8eSopenharmony_ci * 15961847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 16061847f8eSopenharmony_ci * @atomicservice 16161847f8eSopenharmony_ci * @since 12 16261847f8eSopenharmony_ci */ 16361847f8eSopenharmony_ci class PickerResult { 16461847f8eSopenharmony_ci /** 16561847f8eSopenharmony_ci * The result code. 16661847f8eSopenharmony_ci * 16761847f8eSopenharmony_ci * @type { number } 16861847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 16961847f8eSopenharmony_ci * @since 11 17061847f8eSopenharmony_ci */ 17161847f8eSopenharmony_ci /** 17261847f8eSopenharmony_ci * The result code. 17361847f8eSopenharmony_ci * 17461847f8eSopenharmony_ci * @type { number } 17561847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 17661847f8eSopenharmony_ci * @atomicservice 17761847f8eSopenharmony_ci * @since 12 17861847f8eSopenharmony_ci */ 17961847f8eSopenharmony_ci resultCode: number; 18061847f8eSopenharmony_ci 18161847f8eSopenharmony_ci /** 18261847f8eSopenharmony_ci * The result saved uri. 18361847f8eSopenharmony_ci * 18461847f8eSopenharmony_ci * @type { string } 18561847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 18661847f8eSopenharmony_ci * @since 11 18761847f8eSopenharmony_ci */ 18861847f8eSopenharmony_ci /** 18961847f8eSopenharmony_ci * The result saved uri. 19061847f8eSopenharmony_ci * 19161847f8eSopenharmony_ci * @type { string } 19261847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 19361847f8eSopenharmony_ci * @atomicservice 19461847f8eSopenharmony_ci * @since 12 19561847f8eSopenharmony_ci */ 19661847f8eSopenharmony_ci resultUri: string; 19761847f8eSopenharmony_ci 19861847f8eSopenharmony_ci /** 19961847f8eSopenharmony_ci * The result resource type. 20061847f8eSopenharmony_ci * 20161847f8eSopenharmony_ci * @type { PickerMediaType } 20261847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 20361847f8eSopenharmony_ci * @since 11 20461847f8eSopenharmony_ci */ 20561847f8eSopenharmony_ci /** 20661847f8eSopenharmony_ci * The result resource type. 20761847f8eSopenharmony_ci * 20861847f8eSopenharmony_ci * @type { PickerMediaType } 20961847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 21061847f8eSopenharmony_ci * @atomicservice 21161847f8eSopenharmony_ci * @since 12 21261847f8eSopenharmony_ci */ 21361847f8eSopenharmony_ci mediaType: PickerMediaType; 21461847f8eSopenharmony_ci } 21561847f8eSopenharmony_ci 21661847f8eSopenharmony_ci /** 21761847f8eSopenharmony_ci * Pick function to get a photo or video result. 21861847f8eSopenharmony_ci * 21961847f8eSopenharmony_ci * @param { Context } context - From UIExtensionAbility. 22061847f8eSopenharmony_ci * @param { Array<PickerMediaType> } mediaTypes - Pick media type. 22161847f8eSopenharmony_ci * @param { PickerProfile } pickerProfile - Picker input Profile. 22261847f8eSopenharmony_ci * @returns { Promise<PickerResult> } pick result. 22361847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 22461847f8eSopenharmony_ci * @since 11 22561847f8eSopenharmony_ci */ 22661847f8eSopenharmony_ci /** 22761847f8eSopenharmony_ci * Pick function to get a photo or video result. 22861847f8eSopenharmony_ci * 22961847f8eSopenharmony_ci * @param { Context } context - From UIExtensionAbility. 23061847f8eSopenharmony_ci * @param { Array<PickerMediaType> } mediaTypes - Pick media type. 23161847f8eSopenharmony_ci * @param { PickerProfile } pickerProfile - Picker input Profile. 23261847f8eSopenharmony_ci * @returns { Promise<PickerResult> } pick result. 23361847f8eSopenharmony_ci * @syscap SystemCapability.Multimedia.Camera.Core 23461847f8eSopenharmony_ci * @atomicservice 23561847f8eSopenharmony_ci * @since 12 23661847f8eSopenharmony_ci */ 23761847f8eSopenharmony_ci function pick(context: Context, mediaTypes: Array<PickerMediaType>, pickerProfile: PickerProfile): Promise<PickerResult>; 23861847f8eSopenharmony_ci} 23961847f8eSopenharmony_ci 24061847f8eSopenharmony_ciexport default cameraPicker;