调整大小后 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 相机预览被打乱的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenGL 2.0 API 在 GLSurfaceView 上将 Android 相机预览旋转 90 度