gpt4 book ai didi

Android - 如何为视频录制创建不可见的相机预览?

转载 作者:行者123 更新时间:2023-11-30 03:33:20 25 4
gpt4 key购买 nike

我想为相机预览创建隐藏的 SurfaceView。我尝试了在回答另一个问题时推荐的方法:

WindowManager wm = (WindowManager) mCtx.getSystemService(Context.WINDOW_SERVICE);
params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
wm.addView(surfaceview, params);

surfaceview.setZOrderOnTop(true);
mHolder.setFormat(PixelFormat.TRANSPARENT);

但它并不是不可见的,实际上它占据了整个屏幕。我尝试设置 alpha 或调整它的大小,但它不起作用。有没有办法使其隐藏或至少将其调整为 1x1 大小?

编辑:

我还要补充一点,在 Activity 布局中简单地放置 1x1 SurfaceView 在我的情况下是行不通的,因为我使用多个布局并且我相信 Views 在布局更改时被破坏...

最佳答案

SurfaceView 占据了整个屏幕,因为您的代码将宽度/高度定义为 WRAP_CONTENT。尝试使用

new LayoutParams(1, 1, LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, PixelFormat.TRANSLUCENT)

要制作隐藏的相机或类似的东西,你不应该使用当前 Activity 中的 Context 因为你的 Activity 需要在录制过程中可见(所以这不是隐藏的...)。当当前 Activity 置于后台时,上下文将为 null 并且录制将停止或崩溃。

您可以尝试运行一个Service(不可见但也有上下文)并从该服务中的代码创建一个SurfaceView

关于Android - 如何为视频录制创建不可见的相机预览?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com