Я пытаюсь отобразить Media Picker Джеймса Монтеманьо немедленно, когда пользователь переходит на одну из моих страниц с вкладками. Я нашел функцию под названием OnAppearing (), которую я попытался переопределить, чтобы получить такой результат. Хотя технически он показывает камеру сразу же, когда я переключаю вкладки, после того, как я закрываю окно выбора мультимедиа, я получаю сообщение об ошибке: «Одновременно может быть активна только одна операция».
Вот как я пытаюсь для реализации этой функции:
protected override async void OnAppearing()
{
TakePhotoButton_Clicked();
}
async void TakePhotoButton_Clicked()
{
//Allows users to take pictures in the app
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
DisplayAlert("No Camera", "Camera is not available.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
//Sets the properties of the photo file
SaveToAlbum = true,
PhotoSize = PhotoSize.MaxWidthHeight,
DefaultCamera = CameraDevice.Rear
});
if (file == null)
return;
}
Я новичок во всем этом, и мне кажется, что я делаю техническую ошибку. Я прочитал этот пост https://damian.fyi/2016/07/06/only-one-operation-can-be-active-at-at-time/ о том, что у кого-то такая же ошибка. Они утверждали: «Я наконец понял, что после того, как я сделал снимок, форма повторно отображалась, что привело к повторному запуску появляющегося события и, таким образом, к созданию новой фотографии во время съемки старой. Отсюда трещина sh. "
Однако я не понимаю, как мой код вызывает это. Приветствуются любые рекомендации.