как я могу сделать снимок в реальном времени, не переходя в галерею в формах xamarin?

#xamarin.forms

#xamarin.forms

Вопрос:

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

Комментарии:

1. Посмотрите на эти потоки для исключения: mediaplugin-argument-exception и android-file-provider-setup

Ответ №1:

используйте медиа-плагин

 takePhoto.Clicked  = async (sender, args) =>
{
    await CrossMedia.Current.Initialize();

    if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
    {
        DisplayAlert("No Camera", ":( No camera available.", "OK");
        return;
    }

    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
    {
        Directory = "Sample",
        Name = "test.jpg"
    });

    if (file == null)
        return;

    await DisplayAlert("File Location", file.Path, "OK");

    image.Source = ImageSource.FromStream(() =>
    {
        var stream = file.GetStream();
        return stream;
    }); 
};
  

Комментарии:

1. я использовал «использование плагина. Медиафайлы. Абстракции; Использование плагина. Media; » и поместите этот код в try {} , приложение перейдет к catch () .

2. да, я сделал это и попытался использовать DefaultCamera, но ничего

3. какое исключение вы получаете?

4. невозможно получить местоположение файла, это, скорее всего, означает, что информация о поставщике файлов. не установлено на главном экране Android