1

我想在服务器上共享我的设备屏幕并从服务器远程访问它。我尝试了很多方法,例如:MediaProjectionsetDrawingCacheEnabled(true)

在 MediaProjection 的情况下,我知道我们必须通过一个表面,它会在该表面上绘制整个屏幕。但我想从我可以共享的表面获取可绘制或位图,并处理来自服务器的点击,这将反映在我的 android 设备上(就像 teamviewer 一样):

媒体投影:

VirtualDisplay mVirtualDisplay = mMediaProjection.createVirtualDisplay("ScreenCapture",
            mSurfaceView.getWidth(), mSurfaceView.getHeight(), mScreenDensity,
            DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
            mSurfaceView.getHolder().getSurface()
            , null, null);

但是使用VirtualDisplaySurface,我无法在服务器上共享它。有没有其他方法可以连续捕获屏幕并在服务器上共享。

setDrawingCacheEnabled(true)

View view = getView().getRootView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache(true);
    Bitmap b = Bitmap.createBitmap(view.getDrawingCache());

但问题是,我无法在我的应用程序之外捕获屏幕,即我无权访问在其上呈现其他视图的父视图。

此外,如果我可以访问所有视图的父级,但它不会递归地绘制其子级的内容。

我的总体问题是任何方式来捕获屏幕(在我的应用程序之外),在服务器上共享它并处理点击?

4

0 回答 0