我在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來說這是真的,但它不適用於某些索尼設備。 –
感謝您的意見,我會把它考慮到 –