【问题标题】:Android Record screen and display it on uppermost Surface MediaProjection ManagerAndroid 录制屏幕并将其显示在最上面的 Surface MediaProjection Manager
【发布时间】:2026-01-06 03:40:01
【问题描述】:

我使用 MediaProjectionManager(从 Lollipop 开始)记录我的 android 设备屏幕。但我想在新的最上面的 Surface 的同一屏幕上显示此记录。记录 MediaProjectionManager 不应触及此表面(记录所有可见表面的合成)。是否有任何系统 SurfaceView 无法被 MediaProjectionManager 识别以将其流式传输到它上?

或者换句话说:如何防止记录某些 SurfaceView,使它们对记录器不可见?有没有要设置的标志?

我使用 MattSnider 的这段代码进行录制: http://mattsnider.com/video-recording-with-mediaprojectionmanager/

【问题讨论】:

  • 您可以将其标记为“安全”,这将使其显示为黑色,但我认为没有办法将其标记为“不可见”。但是我还没有查看最近的 Android 是否存在这样的事情。通常,当您这样做时,您会获得“镜厅”效果。
  • 在 SurfaceView 上设置标志 -- developer.android.com/reference/android/view/…
  • 嗨@fadden,感谢您回答这个问题和其他几个类似的问题。你觉得4年后会好转吗?此功能对于想要修改标准显示行为的应用程序非常有用。我也想知道有什么可行的方法可以在不生根的情况下到达那里。

标签: android surfaceview android-mediaprojection


【解决方案1】:

回答这个问题。

不,不可能在录制屏幕的同时在录制的视图顶部显示录制的屏幕。这将导致“镜厅”效应。

原因:MediaProjectionManager 是 Android 系统类,elsewere 无法访问该类。否则,这将意味着 Android 平台上的重大安全问题。

也许这对任何人都有帮助

【讨论】:

    最近更新 更多