监听 TextureView 第一帧渲染

Listen for TextureView first frame render

我正在实现用于扫描二维码的相机预览。使用 TextureView 渲染预览。 当相机和所有东西都在初始化时,有一个黑屏,所以我想显示一个占位符,直到相机开始在视图上渲染。我使用 onSurfaceTextureAvailable 要求相机开始预览,但在要求相机开始预览后,您再次看到黑屏的时间很短,因此我需要一种方法来了解预览何时真正开始。 这可能吗?

谢谢。

试试 onSurfaceTextureUpdated 回调:

@Override
public void onSurfaceTextureUpdated(@NonNull final SurfaceTexture surface) {
    
    if (!this.isRendering) {
        this.isRendering = true;
        ... Remove the place holder
    }
}

确保使用示例中的标志,因为如果实现是针对相机应用程序,那么回调将在每个相机帧上不断触发,因此使用标志以避免调用占位符的删除代码不断 none-stop.