我需要一些关于如何在 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)