我在Xamarin Visual Studio中完成了一个自定义摄像头应用程序,它以非常低的分辨率拍摄图片,所以我添加了这段代码。Xamarin设置摄像头分辨率
public void OnSurfaceTextureAvailable(Android.Graphics.SurfaceTexture surface, int w, int h)
{
_camera = Android.Hardware.Camera.Open();
Android.Hardware.Camera.Parameters param = _camera.GetParameters();
IList<Android.Hardware.Camera.Size> supportedSizes = param.SupportedPictureSizes;
Android.Hardware.Camera.Size sizePicture = supportedSizes[0];
param.SetPictureSize(sizePicture.Height, sizePicture.Width);
_camera.SetParameters(param);
var previewSize = _camera.GetParameters().PreviewSize;
_textureView.LayoutParameters =
new FrameLayout.LayoutParams(h, w, GravityFlags.Center);
try
{
_camera.SetPreviewTexture(surface);
_camera.StartPreview();
}
catch (Java.IO.IOException ex)
{
Console.WriteLine(ex.Message);
}
_textureView.Rotation = 90.0f;
}
在firts行我拿相机参数,然后我得到了支持的图片尺寸后,我选择firts([0])和finallly我将图像尺寸设置,
Android.Hardware.Camera.Parameters param = _camera.GetParameters();
IList<Android.Hardware.Camera.Size> supportedSizes = param.SupportedPictureSizes;
Android.Hardware.Camera.Size sizePicture = supportedSizes[0];
param.SetPictureSize(sizePicture.Height, sizePicture.Width);
_camera.SetParameters(param);
但是,当我运行代码此消息显示出来:
未处理的异常:
了java.lang.RuntimeException:setParamet厄尔斯失败
这里有什么问题?我不能设置函数返回的任何支持的大小?如何选择它们中的任何一个例如第一个?还有什么我不得不考虑的?
快速备注您选择的图片尺寸的方式。索引0处的那个并不总是最好的一个。虽然对于Nexus 4,5和5X来说这是真的,但它不适用于某些索尼设备。 –
感谢您的意见,我会把它考虑到 –