Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android记录屏幕,但仅特定';层'/意见_Android_Android Mediaprojection - Fatal编程技术网

Android记录屏幕,但仅特定';层'/意见

Android记录屏幕,但仅特定';层'/意见,android,android-mediaprojection,Android,Android Mediaprojection,我使用MediaProjectionAPI在Android中录制屏幕。现在我想知道是否有可能创建一个“隐藏”视图,你实际上可以看到,但不在视频中,因此不应该记录该视图。此外,是否可以禁用通知记录,甚至禁用通知中心 那么,是否可以像“表层系统”一样进行配置,从而决定要记录的层 可以通过设置来防止层出现在录制中。例如,请参见中的“multi-surface test”,它在其中一个SurfaceView上设置标志 如果直接使用createVirtualDisplay(),而不是通过MediaProj

我使用MediaProjectionAPI在Android中录制屏幕。现在我想知道是否有可能创建一个“隐藏”视图,你实际上可以看到,但不在视频中,因此不应该记录该视图。此外,是否可以禁用通知记录,甚至禁用通知中心


那么,是否可以像“表层系统”一样进行配置,从而决定要记录的层

可以通过设置来防止层出现在录制中。例如,请参见中的“multi-surface test”,它在其中一个SurfaceView上设置标志


如果直接使用
createVirtualDisplay()
,而不是通过MediaProjectionManager,您将配置一个虚拟显示,以仅显示应用程序自己的窗口。因为您正在为自己的内容创建显示,所以不会显示“用户权限”对话框。例如,请参见。

您可以用来记录特定的布局。

您知道除了SurfaceView之外,其他视图是否也可以使用它吗?此外,我还使用WindowManager对其进行了测试,您也可以设置安全标志,但问题是,当我播放视频时,WindowManager中的视图是“黑色背景”,但我希望视图不应完全出现在录制的视频中。所有视图都由应用程序本身绘制在一个图层上。SurfaceView的曲面是一个独立的层,由系统图形合成器(SurfaceFlinger)处理。“安全”标志应用于整个层,这就是为什么可以隐藏曲面,但不能隐藏单个视图。如果你创建了一个演示文稿,你可以在上面放任何你想要的视图;这可能比镜像显示更有用。(我的答案中链接的测试创建了一个演示文稿并在其上放置了一个图像视图。)问题是,我想在主应用程序之外录制,因此用户可以在主屏幕或其他应用程序中进行操作。此外,我想给他一个浮动覆盖控制面板,他可以与之交互(停止/暂停录制)。但是这个覆盖面板不应该出现在录音中,而应该只出现在用户面前。我用WindowManager成功地做到了这一点,并将其设置为安全,但它仍然以空白视图的形式出现在视频中。我现在正试图找出如何使这个视图透明或不可见,而不是一个空白视图。我明白了。。。因此,您需要完整的设备录制,但安全层被视为不可见而不是黑色。我不知道怎么做。您可能需要在SurfaceFlinger中定义一个“层堆栈”,而不是忽略不需要的层。。。我认为它总是会在不安全的显示器上屏蔽安全层()。你有没有找到解决这个问题的办法?