Exemple #1
0
        public void SetupCamera()
        {
            if (camera != null)
            {
                return;
            }

            PermissionsHandler.CheckCameraPermissions(context);

            OpenCamera();

            if (camera == null)
            {
                return;
            }

            ApplyCameraSettings();

            try
            {
                camera.SetPreviewDisplay(holder);

                var previewParameters = camera.GetParameters();
                var previewSize       = previewParameters.PreviewSize;
                var bitsPerPixel      = ImageFormat.GetBitsPerPixel(previewParameters.PreviewFormat);

                int       bufferSize          = (previewSize.Width * previewSize.Height * bitsPerPixel) / 8;
                const int NUM_PREVIEW_BUFFERS = 5;
                for (uint i = 0; i < NUM_PREVIEW_BUFFERS; ++i)
                {
                    using (var buffer = new FastJavaByteArray(bufferSize))
                        camera.AddCallbackBuffer(buffer);
                }

                camera.StartPreview();

                camera.SetNonMarshalingPreviewCallback(cameraEventListener);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.ToString());
                return;
            }
            finally
            {
            }
        }