Ионный - вызов камеры снова после съемки?

77
9

Я работаю над приложением в тот момент, когда требуется как минимум 4 снимка. Я пытаюсь перезапустить камеру каждый раз, когда снимок сделан, поэтому им не нужно снова нажимать кнопку "Снимок" в меню приложения. Вот мой код:

startCamera() {
if(this.pictureList.length >= 4) {
this.alertController.create({
title: this.singleton.TITLE_ERROR,
message: this.singleton.MESSAGE_TOOMANYPHOTOS,
buttons: [
{
text: 'Ok',
}
]
}).present();
return;
}

let imageData = "";
this.camera.getPicture(this.options).then((imageData) => {
this.pictureList.push(imageData);

let temp = [];
for (let i of this.pictureList) i && temp.push(i);

this.pictureList = temp;
this.slides.refresh();
}, (err) => {
console.log(err);
});
}

Однако камера не возвращается обратно в камеру? Есть ли причина, почему это не сработает? Я думаю, что это нужно, когда я пытаюсь назвать функцию внутри обещания?

Спасибо

спросил(а) 2021-01-25T16:49:38+03:00 4 месяца, 2 недели назад
1
Решение
108

Возможно, с рекурсией вы можете это сделать, я оставляю вам недоказанный пример, но это может логически служить вам:

Я сделал пример на основе приложения, которое сохраняет его в Base 64, но применяя push в списке, как вам это нужно.

pictureList: any[];

ngOnInit(): void {
this.pictureList = null;
this.optionsCamera = {
quality: 50,
destinationType: this._camera.DestinationType.DATA_URL,
encodingType: this._camera.EncodingType.JPEG,
mediaType: this._camera.MediaType.PICTURE,
saveToPhotoAlbum: true
};
this.optionsGallery = {
quality: 50,
destinationType: this._camera.DestinationType.DATA_URL,
sourceType: this._camera.PictureSourceType.PHOTOLIBRARY
};
}

startCamera(): void {
if (this.pictureList.length <= 4) {
console.log('Open in length: ' + this.pictureList.length);
this.getPhoto(this.optionsCamera);
this.startCamera();
}
}

getPhoto(options): void {
this._camera.getPicture(options).then(
imageData => {
let base64Image = "data:image/jpeg;base64," + imageData;
this.pictureList.push(base64Image);
},
err => {
console.log("Could not open the camera: " + err);
}
);
}

ответил(а) 2021-01-25T16:49:38+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема