我怎么能延迟相机预览,以便显示x秒前发生的事情?

问题描述 投票:0回答:2

我有一个简单的Android应用程序与相机预览。

我想设置预览,以便显示x秒之前发生的事情。

我正在尝试做一个缓冲区,但看起来没有办法控制预览中的内容。

我使用camera2textureView进行预览。

你有任何想法或图书馆可以帮助我吗?谢谢 !

android kotlin camera android-camera2
2个回答
0
投票

使用处理程序:

new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                // do your preview task here
            }
        },1000);  // 1000 mili sec = 1 sec

run方法将在一秒后调用,您可以根据您的要求进行更改。


0
投票

你需要以某种方式缓存~30个预览缓冲区。

一种可能的方法是使用ImageReader,等待30个onImageAvailable回调在获取第一个Image之前触发。但是这需要您在开始获取它们时自己将图像绘制到预览TextureView,这在Android Q的带有使用标记构造函数的ImageReader之前很难正确完成。

你也可以在OpenGL中缓存东西;使用SurfaceTexture和GLSurfaceView,并将SurfaceTexture帧复制到循环缓冲区中30个其他纹理的列表中,然后在绘制第30个纹理时开始渲染。但需要相当多的脚手架代码来实现。

© www.soinside.com 2019 - 2024. All rights reserved.