AutoFitTextureView捕获了摄像机预览中不可见的帧。
创始人
2024-11-12 13:30:16
0

要解决"AutoFitTextureView捕获了摄像机预览中不可见的帧"的问题,可以按照以下步骤进行操作:

  1. 在AutoFitTextureView的布局文件中,添加一个透明的SurfaceView来捕获可见的帧。


    

    


  1. 在相机预览的回调方法中,判断当前捕获的帧是否可见。如果可见,将其传递给AutoFitTextureView进行显示;如果不可见,直接丢弃。
private Camera.PreviewCallback mPreviewCallback = new Camera.PreviewCallback() {
    @Override
    public void onPreviewFrame(byte[] data, Camera camera) {
        if (isTextureViewVisible()) {
            // 将帧传递给AutoFitTextureView进行显示
            mTextureView.onPreviewFrame(data, camera);
        } else {
            // 不可见的帧丢弃
            camera.setPreviewCallback(null);
        }
    }
};

private boolean isTextureViewVisible() {
    Rect surfaceFrame = new Rect();
    mTextureView.getGlobalVisibleRect(surfaceFrame);
    Rect visibleFrame = new Rect();
    mVisibleSurfaceView.getGlobalVisibleRect(visibleFrame);
    return surfaceFrame.intersect(visibleFrame);
}

在上述代码中,isTextureViewVisible()方法用于判断AutoFitTextureView是否可见。首先,通过getGlobalVisibleRect()方法获取AutoFitTextureView和透明SurfaceView在屏幕上的可见区域。然后使用intersect()方法判断两个区域是否有交集,如果有交集说明AutoFitTextureView可见,否则不可见。

  1. 在相机的打开和关闭方法中,设置预览回调以及预览的Surface。
private void openCamera() {
    // ...

    // 设置预览回调
    mCamera.setPreviewCallback(mPreviewCallback);

    // 设置预览的Surface
    try {
        mCamera.setPreviewDisplay(mVisibleSurfaceView.getHolder());
    } catch (IOException e) {
        e.printStackTrace();
    }

    // ...
}

private void releaseCamera() {
    // ...

    mCamera.setPreviewCallback(null);
    mCamera.setPreviewDisplay(null);

    // ...
}

通过以上步骤,AutoFitTextureView将只捕获可见的帧,不可见的帧将被丢弃,从而解决了"AutoFitTextureView捕获了摄像机预览中不可见的帧"的问题。

相关内容

热门资讯

wpk ai辅助!德州ai辅助... wpk ai辅助!德州ai辅助神器软件,(AAPOkER)最初存在有挂(详细透视技巧教程)准备好在德...
透视智能ai(aapoker辅... 透视智能ai(aapoker辅助)微扑克ai辅助神器(详细辅助2025新版教程)一贯有挂;辅助插件是...
wpk透明挂!德扑自定义房间,... wpk透明挂!德扑自定义房间,(wepOKE)竟然真的是有挂(详细透视曝光教程);建议优先通过wpk...
透视计算(wepokeai代打... 透视计算(wepokeai代打)德州ai人工智能软件下载(详细辅助力荐教程)本来是真的有挂,您好,这...
德州ai机器人!微扑克专用辅助... 德州ai机器人!微扑克专用辅助程序怎么用的啊,(wopoker)一向是有挂(详细辅助科技教程);是一...
透视好友房(德州免费辅助神器a... 透视好友房(德州免费辅助神器app)约局互娱辅助(详细辅助安装教程)其实有挂1、用户打开应用后不用登...
aapoker辅助!wepow... 这是一款非常优秀的aapoker辅助 ia辅助检测软件,能够让你了解到aapoker辅助中牌率当中全...
透视真的(智星德州菠萝外挂)微... 透视真的(智星德州菠萝外挂)微扑克辅助器是骗人吗(详细辅助教你教程)从前是真的有挂1、起透看视 透明...
wpk有辅助挂!微扑克有脚本吗... wpk有辅助挂!微扑克有脚本吗,(aapOKER)一直有挂(详细辅助AA德州教程)1、许多玩家不知道...
透视美元局(德扑ai智能)wp... 透视美元局(德扑ai智能)wpk有猫腻吗(详细辅助揭秘攻略)往昔真的有挂1、不需要AI权限,帮助你快...