0

我需要一些关于如何在 Xamarin.Forms 中使用相机的建议。目前,NuGet Xam.Plugin.Media。媒体。使用以下代码,当您从 UI 按下按钮时,相机会启动、拍照并在屏幕上显示图像。


    private async void OnCameraTapped(object sender, EventArgs e)
    {
        var photo = await CaptureCamera();
        Image.Source = ImageSource.FromStream() =>
        {
            return new MemoryStream(photo);
        });
    }
    ```
    
    ```
    private async Task<byte[]> CaptureCamera()
    {
        await Plugin.Media.CrossMedia.Current. Initialize();
    
        Initialize(); if (!Plugin.Media.CrossMedia.Current. IsCameraAvailable ||
    !Plugin.Media.CrossMedia.Current. IsTakePhotoSupported)
        {
            return null;
        }
    
        var file = await Plugin.Media.CrossMedia. CrossMedia.
    .TakePhotoAsync(
    new Plugin.Media.Abstractions. StoreCameraMediaOptions
        {
            Directory = "Photo",
            Name = DateTime.Now.ToString("yyyy_MMdd_HHHmm ") + "Photo.jpg",
        });
    
        if (file == null)
            return null;
    
        var bytes = new Queue<byte>();
        using (var s = file.GetStream())
        {
            var length = s.Length;
            int b;
            while ((b = s.ReadByte()) ! = -1)
                bytes.Enqueue((byte)b);
        }
        Dispose();
        Dispose(); if (bytes == null) return null;
        return bytes.ToArray();
    }

但是,这种方法使用 Plugin.Media.CrossMedia,这意味着存在一些限制。我想知道如何绕过这些限制。

Q) 我需要按下快门,然后在激活的相机上按下“OK”。我想通过按下快门来完成这个过程。

Q) 我启动的摄像头默认为外置摄像头。我想给自己拍张照片,所以我想启动相机作为默认值。

我怎样才能绕过以上两点?

我的环境如下。操作系统 Windows 10 Home IDE Visual Studio 2019 社区 Xamarin.Form(.NET Standard 2.1) 目标 Android 9.0(API 28)

4

0 回答 0