ImageReader.IOnImageaVailableListener回调要4秒左右

来自China的神秘人 2019-11-18 03:54:10
为啥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();
}
}
}
...全文
1840 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AAKKKKK_0 2021-04-01
  • 打赏
  • 举报
回复
请问问题解决了吗?
  • 打赏
  • 举报
回复
引用 3 楼 Krisez 的回复:
[quote=引用 2 楼 gqx_1995 的回复:] [quote=引用 1 楼 Krisez 的回复:] 图片大小? 网络状况?
应该是ImageFormatType.JPEG的问题。我查资料说是JPEG渲染数据量太大,容易掉帧。 刚接触这一块,想把ImageFormatType.JPEG 改成ImageFormatType.YUV420888,但是改成YUV420888后,就接受不到回调了,肯定是少改了哪里,刚接触这一块,还在理解ing...[/quote] 尴尬,我理解错了0...0~~一开始。。。 emmmm 渲染大了 试试将分辨率降低点,一步步的试试,对于创建图片的地方,尽可能选择最小的配置,再升级[/quote] 能看下我那段代码要怎么改吗,我尝试改成YUV420888,可以预览,但是就接收不到回调了,网上查阅半天相关资料,都没有解决。
Krisez 2019-11-18
  • 打赏
  • 举报
回复
引用 2 楼 gqx_1995 的回复:
[quote=引用 1 楼 Krisez 的回复:]
图片大小?
网络状况?

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

尴尬,我理解错了0...0~~一开始。。。


emmmm 渲染大了 试试将分辨率降低点,一步步的试试,对于创建图片的地方,尽可能选择最小的配置,再升级
  • 打赏
  • 举报
回复
引用 1 楼 Krisez 的回复:
图片大小? 网络状况?
应该是ImageFormatType.JPEG的问题。我查资料说是JPEG渲染数据量太大,容易掉帧。 刚接触这一块,想把ImageFormatType.JPEG 改成ImageFormatType.YUV420888,但是改成YUV420888后,就接受不到回调了,肯定是少改了哪里,刚接触这一块,还在理解ing...
Krisez 2019-11-18
  • 打赏
  • 举报
回复
图片大小?
网络状况?

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧