清除 TextureView 上的最后一帧预览

Clearing last frame preview on TextureView

我已经使用 TextureView 显示了相机流。当切换相机(切换前调用 stopPreview())时,从前到后或反之,视图在 TextureView 上绘制的最后一帧处暂停。我想在 "switching" 发生时显示空白屏幕。我怎样才能实现它?

最简单的解决方案是定义一个覆盖相机预览表面的黑色视图。在相机预览工作时设置它的可见性 "gone",在停止预览时设置它的可见性 "visible" 直到切换结束。对于已弃用的相机 API,您可以使用 setPreviewCallbackOnce() 来获取再次隐藏叠加层的指示。