Xamarin.Plugin.Media - Camera not respond at first use

Franck_SDEAFranck_SDEA Member ✭✭

Hi,

I use Xamarin.Plugin.Media for QR Code scan. In first launch, the app request authorization for camera, but after acceptance, the camera view does not activate, the view remains white.

Permissions in AssemblyInfo:
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
[assembly: UsesFeature("android.hardware.camera", Required = true)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = true)]
[assembly: UsesFeature("android.hardware.location.network", Required = true)]

Code:
await CrossMedia.Current.Initialize();

if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
    await DisplayAlert("Erreur caméra...", "Aucune caméra disponible !", "OK");
    return;
}

var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
{
    SaveToAlbum = false,
    PhotoSize = PhotoSize.Medium,
    CompressionQuality = 25,
    Name = "SDEA_SSO_IMG_" + this.QrCodeValues[1].Substring(this.QrCodeValues[1].Length - 8, 8) + ".jpg"
});

if (file == null)
    await DisplayAlert("Erreur photo...", "Une erreur est survenue lors de la prise ou l'enregistrement de la photo !", "OK");
else
{
    /* Stock le chemin de la phoho dans le bouton. */
    img.PhotoFilename = file.Path;

    /* Création d'une miniature de la photo pour le bouton */
    byte[] imageData;
    Stream stream = file.GetStream();

    using (MemoryStream ms = new MemoryStream())
    {
        stream.CopyTo(ms);
        imageData = ms.ToArray();
    }

    byte[] resizedImage = await ImageResizer.ResizeImage(imageData, 75, 75);
    img.Source = ImageSource.FromStream(() => new MemoryStream(resizedImage));

Thanks ;)

Answers

Sign In or Register to comment.