android截图并实时传输 “每次截图都是读取framebuffer再编码成png图片,接着将png图片先存到了SD卡上,然后socket是从SD卡上面读取的数据” 你可以把截图和上传数据分为两个线程来处理,一个线程负责截图一个线程负责上传,那么整个工作流程就会比较顺畅,而不会出现互等的状态。 或者用handler的方式在SD卡上生成了该图后通知程式去上传。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请问LZ,LZ的这种方法可以截到别的activity的页面吗?或者设备未启动任何程序时,截到桌面内容。。 你看我的代码啊~~~我是直接放到service里面的在后台截图的 我这上面代码是用的两个线程,不过使用的是线程同步的方法,但是比较java不是非常熟练,怕有的地方写的不对,求高手指点~~~~@_@ 试试asynctask,发送和截图分开进行, 额,我之前测试过,貌似是得不到当前activity,的view。。so,以失败告终。。你的已经能成功获得到图片了嘛。。 能分享一下读取framebuffer编码成png图片的源码吗 我用view.getDrawingCache();截屏Videoview的屏幕 但是截出来是黑屏 楼上的,你看到同名就认为是同一个?!class A{ private int a; public A(int a) { this.a = a; } public void getInt() { System.out.printf("%d\n",a); }}class B{ private int a; public B(int a) { this.a = a; } public void getInt() { System.out.printf("%d\n",a); }}你自己测试吧!两个类中的成员,是不是在同一个地址上!他只是最基本的问题- -,对getInputStream和getOutputStream获得的数据没有使用缓冲!想都知道,没缓冲是个什么效果了! 我有点奇怪,你既然已经是读framebuffer的数据了,为什么不直接把读出来的stream发出去,让服务器处理好了啊,在本地存成png,在去读不浪费时间吗 现在对直接处理底层的stream还不是很懂的,想试试先存在手机内存,发出去的效果的@_@.....弱弱的问下android可以直接读到底层缓冲的stream吗?我现在是编译成的可执行文件的~~~~ 请问LZ startShot(); 方法具体实现了什么呢。 楼主,我最近也在做截屏,纠结了一周多了,能否把framebuffer截屏的代码给我发一份,谢谢! 。 同上 求截图代码[email protected] 跪求截图代码 [email protected] 楼主还在不在,求源码,[email protected] 求截图部分源码:[email protected]多谢~ 大姐大,求截图部分源码:[email protected] 楼主威武,能发我一下你实现的获取framebuffer中的内容并转换成图片的代码吗,[email protected] 我也在截屏 - -!1.service截图如果用View.getDrawingCache(); 如何取得当前屏的View?2.网上还说DDMS的方式,是不是那些手机助手用的这种方式?什么样的思路或者调哪些接口有没有人研究的3.读framebuffer延时一帧貌似要100多ms,有没有谁更快的,或者其他的方式截屏楼主tcp传输的话,上传速度有多少?接收端有几秒的延时? 楼主,我目前也在做截屏,拿不准用哪种方法做,看到楼主的贴,觉得很靠谱,可否发我一下你实现截图的代码学习一下,[email protected]。真心谢谢啦~PS:楼主你实现的是全屏截图还是区域截图? 美女,我也在做这个,问下,你截屏将图片保存为PNG格式,颜色失真么,我保存下来了,颜色失真,求解,代码如下,麻烦帮我看下 InputStream stream = getInputStream(); DataInputStream dStream = new DataInputStream(stream); dStream.readFully(btmap); /* for (int i = 0; i < btmap.length; i++) { System.out.println("----------->"+btmap[i]); }*/ int[] tmpColor = new int[with*height]; int tmpint; // int r,g,b; for(int j=0; j<with*height;j++){ tmpint = 0; tmpint = btmap[j*2+0]+btmap[j*2+1]*256; int r = tmpint>>11; r=(r<<3)|(r>>2); int g = (tmpint >> 5)&63; g=(g<<2)|(g>>4); int b = tmpint&31; b=(b<<3)|(b>>2); // tmpColor[j] = (r << 16) | (g << 8) |b | (0xff000000); tmpColor[j] = 0xff000000 | (r<< 16) | (g<< 8) | b; // System.out.println(tmpColor); } //System.out.println(stream.toString()); //System.out.println("-------------->"+dStream); Bitmap bitmap = Bitmap.createBitmap(tmpColor, with, height, Bitmap.Config.RGB_565); FileOutputStream out = new FileOutputStream("/sdcard/test.png"); boolean a=bitmap.compress(Bitmap.CompressFormat.PNG, 100,out); 求一个源码参照一下,[email protected],本人问题是在4.2.2系统1080P的屏幕设备上截出来的图片是黑屏的,不知道是什么原因 可以参考https://github.com/oNaiPs/droid-VNC-server 楼主延时问题解决了没?[email protected]谢谢 这么多问截图的呀这里有个 http://download.csdn.net/detail/tangcheng_ok/4390845 你的截图需要root 权限吗? 我是系统截屏,测试了一下,一秒可以接的40张左右,速度可以,但是文件有700K左右每张,一秒的数据惊人,所以我在传输前进行了图像压缩,传压缩文件,因为我是手机件的无线屏享,所以对图像要求不太高,于是我做了质量压缩,数据量大大减少,传输估计不是问题,我无线数据模块还没有做出来,这是我的毕业设计,刚上手两个月,有什么说法不专业,建议不成熟的地方请指教,我的QQ877025205,多交流,在数据的套接字传输这一块希望不吝赐教。 不知露珠问题解决没有,我现在也在做类似功能,求代码参考,[email protected] 楼主,求读取framebuffer编码成png图片源码,[email protected],谢谢 我想做一个屏幕共享的功能,求指教 ,跪求源码参考[email protected] 百度地图api如何实现比例尺 adb push遇到的问题 在线跪求android蓝牙通信问题 android Settings里的通话设置,帐户同步和辅助功能源码更改 支持Vedio 如何判断dialog是否在最前端 大神们,这个怎么解析啊 Android SDK中MediaPlayer播放器prepareAsync准备时间的问题,求指教 关于Android L最小的sdk版本是什么 求助贴,MediaPlayer在wifi状态下的异常,无法正常播放音乐 用android单元测试即junit,测试新浪微博API问题。。 再次求助。Source not found。问题
class A
{
private int a;
public A(int a)
{
this.a = a;
}
public void getInt()
{
System.out.printf("%d\n",a);
}
}class B
{
private int a;
public B(int a)
{
this.a = a;
}
public void getInt()
{
System.out.printf("%d\n",a);
}
}你自己测试吧!两个类中的成员,是不是在同一个地址上!他只是最基本的问题- -,对getInputStream和getOutputStream获得的数据没有使用缓冲!
想都知道,没缓冲是个什么效果了!
多谢~
1.service截图如果用View.getDrawingCache(); 如何取得当前屏的View?
2.网上还说DDMS的方式,是不是那些手机助手用的这种方式?什么样的思路或者调哪些接口有没有人研究的
3.读framebuffer延时一帧貌似要100多ms,有没有谁更快的,或者其他的方式截屏
楼主tcp传输的话,上传速度有多少?接收端有几秒的延时?
PS:楼主你实现的是全屏截图还是区域截图?
InputStream stream = getInputStream();
DataInputStream dStream = new DataInputStream(stream);
dStream.readFully(btmap);
/* for (int i = 0; i < btmap.length; i++) {
System.out.println("----------->"+btmap[i]);
}*/
int[] tmpColor = new int[with*height];
int tmpint;
// int r,g,b;
for(int j=0; j<with*height;j++){
tmpint = 0;
tmpint = btmap[j*2+0]+btmap[j*2+1]*256;
int r = tmpint>>11;
r=(r<<3)|(r>>2);
int g = (tmpint >> 5)&63;
g=(g<<2)|(g>>4);
int b = tmpint&31;
b=(b<<3)|(b>>2);
// tmpColor[j] = (r << 16) | (g << 8) |b | (0xff000000);
tmpColor[j] = 0xff000000 | (r<< 16) | (g<< 8) | b;
// System.out.println(tmpColor);
}
//System.out.println(stream.toString());
//System.out.println("-------------->"+dStream);
Bitmap bitmap = Bitmap.createBitmap(tmpColor, with, height, Bitmap.Config.RGB_565);
FileOutputStream out = new FileOutputStream("/sdcard/test.png");
boolean a=bitmap.compress(Bitmap.CompressFormat.PNG, 100,out);
这里有个
http://download.csdn.net/detail/tangcheng_ok/4390845