7

我正在与通过 WiFi 连接的多个表(全部为根)共享平板电脑显示器,我正在使用以下方法(都在一个线程内):

1-我截屏。

Process sh = Runtime.getRuntime().exec("su", null,null);    
OutputStream  os = sh.getOutputStream();
os.write(("/system/bin/screencap -P " + "/sdcard/test/img.png").getBytes("ASCII"));
os.flush();          
os.close();
sh.waitFor();

2-压缩屏幕截图图像。

Bitmap mBitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + "/test/img.png");
OutputStream outputStream = null;
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/test/img2.png");
outputStream = new FileOutputStream(file);
mBitmap.compress(Bitmap.CompressFormat.JPEG, 15, outputStream);
outputStream.flush();
outputStream.close();

3-打开套接字并将压缩图像发送到另一个平板电脑。

这是可行的,但我的问题是另一台平板电脑的观看延迟需要 4-5 秒才能刷新新显示器,有没有更好的方法让它实时显示?

4

1 回答 1

3

不幸的是,这个功能需要很长时间。它与进程生命周期、IPC 和慢速文件系统相关联。你需要看看这个库/system/bin/screenshot util 的源代码。您必须从源代码中重用本机(c 语言)函数,这不是一项简单的任务。

于 2013-06-07T19:28:40.310 回答