为啥ImageReader.IOnImageaVailableListener回调要4秒左右,太久了。            var reader = ImageReader.NewInstance(width, height, ImageFormatType.Jpeg, 1);
            var outputSurfaces = new List<Surface>(2) { reader.Surface, new Surface(_viewSurface) };            var captureBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture);
            captureBuilder.AddTarget(reader.Surface);
            captureBuilder.Set(CaptureRequest.ControlMode, new Integer((int)ControlMode.Auto));
            SetFlash(captureBuilder);            var JpegOrientation = GetJpegOrientation(characteristics);
            captureBuilder.Set(CaptureRequest.JpegOrientation, JpegOrientation);            //这里是实现IOnImageaVailableListener这个接口的,里面实现了回调方法
            var readerListener = new ImageAvailableListener();
            readerListener.Photo += (sender, buffer) =>
            {
                Buffer = buffer;
                Photo?.Invoke(this, ImageSource.FromStream(() => new MemoryStream(buffer)));
            }; public class ImageAvailableListener : Java.Lang.Object, ImageReader.IOnImageAvailableListener
    {
        public event EventHandler<byte[]> Photo;        public void OnImageAvailable(ImageReader reader)
        {
            Image image = null;            try
            {
                image = reader.AcquireLatestImage();
                var buffer = image.GetPlanes()[0].Buffer;
                var imageData = new byte[buffer.Capacity()];
                buffer.Get(imageData);                Photo?.Invoke(this, imageData);
            }
            catch (Exception)
            {
                // ignored
            }
            finally
            {
                image?.Close();
            }
        }
    }

解决方案 »

  1.   

    应该是ImageFormatType.JPEG的问题。我查资料说是JPEG渲染数据量太大,容易掉帧。
    刚接触这一块,想把ImageFormatType.JPEG 改成ImageFormatType.YUV420888,但是改成YUV420888后,就接受不到回调了,肯定是少改了哪里,刚接触这一块,还在理解ing...
      

  2.   

    应该是ImageFormatType.JPEG的问题。我查资料说是JPEG渲染数据量太大,容易掉帧。
    刚接触这一块,想把ImageFormatType.JPEG 改成ImageFormatType.YUV420888,但是改成YUV420888后,就接受不到回调了,肯定是少改了哪里,刚接触这一块,还在理解ing...尴尬,我理解错了0...0~~一开始
    emmmm  渲染大了  试试将分辨率降低点,一步步的试试,对于创建图片的地方,尽可能选择最小的配置,再升级
      

  3.   

    应该是ImageFormatType.JPEG的问题。我查资料说是JPEG渲染数据量太大,容易掉帧。
    刚接触这一块,想把ImageFormatType.JPEG 改成ImageFormatType.YUV420888,但是改成YUV420888后,就接受不到回调了,肯定是少改了哪里,刚接触这一块,还在理解ing...尴尬,我理解错了0...0~~一开始
    emmmm  渲染大了  试试将分辨率降低点,一步步的试试,对于创建图片的地方,尽可能选择最小的配置,再升级
    能看下我那段代码要怎么改吗,我尝试改成YUV420888,可以预览,但是就接收不到回调了,网上查阅半天相关资料,都没有解决。