diff --git a/entry/src/main/ets/utils/CameraShooter.ets b/entry/src/main/ets/utils/CameraShooter.ets index c5c59a14f24b33620ee9caa915bbdd19b77ea013..e91cea5ac24163e43863c5a8324c8abcbfb7accc 100644 --- a/entry/src/main/ets/utils/CameraShooter.ets +++ b/entry/src/main/ets/utils/CameraShooter.ets @@ -16,20 +16,15 @@ import { camera } from '@kit.CameraKit'; import { videoRecording } from './VideoRecorder'; import { BusinessError } from '@kit.BasicServicesKit'; -import { image } from '@kit.ImageKit'; import { photoAccessHelper } from '@kit.MediaLibraryKit'; -import { fileIo } from '@kit.CoreFileKit'; -import { router, window } from '@kit.ArkUI'; +import { router } from '@kit.ArkUI'; import { filePreview } from '@kit.PreviewKit'; import { CameraConstants } from '../constants/CameraConstants'; -import display from '@ohos.display'; -import { sensor } from '@kit.SensorServiceKit'; let previewOutput: camera.PreviewOutput; let cameraInput: camera.CameraInput; let photoSession: camera.PhotoSession; let photoOutPut: camera.PhotoOutput; -let picUri: string; let previewSize: camera.Size; let currentContext: Context; @@ -88,6 +83,7 @@ export async function cameraShooting(isVideo: boolean, cameraPosition: number, s width: 1920, height: 1080 } + ; let photoProfile: undefined | camera.Profile = photoProfilesArray.find((profile: camera.Profile) => { return profile.size.width === photoSize.width && profile.size.height === photoSize.height; }); @@ -184,54 +180,17 @@ export async function releaseCamera(): Promise { // Sets the callback function after capture function setPhotoOutputCb(photoOutput: camera.PhotoOutput): void { - // Save Photo - photoOutput.on('photoAvailable', (errCode: BusinessError, photo: camera.Photo): void => { - if (errCode || photo === undefined) { - return; - } - let imageObj = photo.main; - imageObj.getComponent(image.ComponentType.JPEG, (errCode: BusinessError, component: image.Component): void => { - if (errCode || component === undefined) { - return; - } - let buffer: ArrayBuffer; - if (component.byteBuffer) { - buffer = component.byteBuffer; - } else { - return; - } - savePicture(buffer, imageObj); - }); - }); - // Saving Moving Photo photoOutput.on('photoAssetAvailable', - async (err: BusinessError, photoAsset: photoAccessHelper.PhotoAsset): Promise => { - if (err) { - return; - } - let accessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(currentContext); - let albumFetchResult: photoAccessHelper.FetchResult = - await accessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); - let album: photoAccessHelper.Album = await albumFetchResult.getLastObject(); - let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = - new photoAccessHelper.MediaAlbumChangeRequest(album); - albumChangeRequest.addAssets([photoAsset]); - await accessHelper.applyChanges(albumChangeRequest); + async (_err: BusinessError, photoAsset: photoAccessHelper.PhotoAsset): Promise => { + let accessHelper: photoAccessHelper.PhotoAccessHelper = + photoAccessHelper.getPhotoAccessHelper(currentContext); + let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = + new photoAccessHelper.MediaAssetChangeRequest(photoAsset); + assetChangeRequest.saveCameraPhoto(); + await accessHelper.applyChanges(assetChangeRequest); }); } -// Save Picture to Album -async function savePicture(buffer: ArrayBuffer, img: image.Image): Promise { - let options: photoAccessHelper.CreateOptions = { - title: Date.now().toString() - }; - let accessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(currentContext); - picUri = await accessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg', options); - let file: fileIo.File = fileIo.openSync(picUri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE); - fileIo.closeSync(file); - img.release(); -} - export function previewPhoto(isMovingPhoto: boolean, context: Context, uri: string): void { if (isMovingPhoto) { router.pushUrl({ url: 'pages/MovingPhotoPage' });