调整大小后 GLSurfaceView 相机预览被打乱

Posted

技术标签:

【中文标题】调整大小后 GLSurfaceView 相机预览被打乱【英文标题】:GLSurfaceView camera preview is scrambled after resize 【发布时间】:2016-11-14 20:35:06 【问题描述】:

我使用 GLSurfaceView 渲染相机预览输出,同时使用 MediaCodec 对其进行编码。

在某些时候,我想调整 GLSurfaceView 的大小以显示更大的相机预览。为此,我暂停了相机预览,将新的布局参数应用于 GLSurfaceView,然后重新启动相机预览。

GLSurfaceView 调整大小成功,但里面的预览大小和以前一样。 GLSurfaceView 的其余部分充满了乱码(见附图)。

【问题讨论】:

使用 Camera2 API?我知道它关注目标Surface尺寸,但不知道它是否跟随变化。 不,使用原始相机 API。我用你在 Grafika 中的一个例子做了一个小实验。我得到了相同的结果,但能够通过将可见性设置为 GONE 然后再次 VISIBLE 来解决它。但是,这个简单的技巧在我自己的应用程序中对我不起作用。可能是因为我有更多的事情要做,相机预览被覆盖在下游视频源的顶部。无论如何,新的要求已经出现,这意味着我无论如何都需要拆除所有东西的解决方案(切换分辨率等),因此不会浪费精力。 【参考方案1】:

对于发现此问题的任何人,我从未设法解决我的问题。

我不得不拆掉整个视图、相机和编码器并重建一切。

【讨论】:

以上是关于调整大小后 GLSurfaceView 相机预览被打乱的主要内容,如果未能解决你的问题,请参考以下文章

使用GLsurfaceview修改带效果的相机预览

使用 OpenGL 2.0 API 在 GLSurfaceView 上将 Android 相机预览旋转 90 度

Android 绘制相机预览

android 相机 怎么改变相机预览界面大小

UIImagePickerController 预览大小与实时大小不一样

Android OpenGL基础相机预览及滤镜