C# 如何在Xamarin拍照?

C# 如何在Xamarin拍照?,c#,android,.net,xamarin,xamarin.android,C#,Android,.net,Xamarin,Xamarin.android,我正在尝试使用Android.Hardware中的Camera类拍照。我正在接收信号,摄像机正在自动跟踪。问题是我不知道怎么拍照 _camera = Camera.Open(); Camera.Parameters param = _camera.GetParameters(); param.FocusMode = Camera.Parameters.FocusModeContinuousPicture; _camera.SetParameters(param); var previewSi

我正在尝试使用Android.Hardware中的Camera类拍照。我正在接收信号,摄像机正在自动跟踪。问题是我不知道怎么拍照

_camera = Camera.Open();
Camera.Parameters param = _camera.GetParameters();
param.FocusMode = Camera.Parameters.FocusModeContinuousPicture;
_camera.SetParameters(param);


var previewSize = _camera.GetParameters().PreviewSize;
_textureView.LayoutParameters =
    new FrameLayout.LayoutParams(previewSize.Width,
        previewSize.Height, GravityFlags.Center);

try
{
    _camera.SetPreviewTexture(surface);
    _camera.StartPreview();
}
catch (Java.IO.IOException ex)
{
    System.Console.WriteLine(ex.Message);
}

// this is the sort of thing TextureView enables
_textureView.Rotation = 90.0f;

此链接可能在这方面对您有所帮助

但您可以使用此代码拍照(takeapiture)


快乐编码!:)

您正在寻找的就是拍照方法。要使用它,您需要实现一些接口。特别是IPictureCallback以接收OnPictureTaken中的图片

示例实现如下所示:

public void OnPictureTaken(byte[] data, Android.Hardware.Camera camera)
{
    camera.StopPreview();
    Toast.MakeText(this, "Cheese", ToastLength.Short).Show();
    camera.StartPreview();
}
为了防止应用程序挂起,您需要停止预览并(重新)重新启动它。

相机有一个TakePicture()方法-这就是您要找的吗?
public void OnPictureTaken(byte[] data, Android.Hardware.Camera camera)
{
    camera.StopPreview();
    Toast.MakeText(this, "Cheese", ToastLength.Short).Show();
    camera.StartPreview();
}