Android系统:2.3.1
IPCamera:F系列
开发板:A8-Tiny210
这几天一直在研究Android上的IPCamera实时监控功能。业务流程是这样的:
用户申请监控后,Android端打开一个线程每隔200ms向服务器发送HTTP请求(请求获取当前的摄像头图片,是的,我也是用了刷图片的效果)。
服务器端向IPCamera发送一段带有cgi参数的http请求到IPCamera,获取到图片流信息,然后封装成字符串(byteàString),发送到客户端,经过解析(byteàbitmap),然后经过宽和高的设置,刷到ImageView上。
首先,Android端开启了一个线程,当用户按下ImageView时启动,实现代码如下:
private Runnable refreshCameraRunnable = new Runnable() {
@Override
publicvoid run() {
while (cameraFlag) {
try {
//这是一个ThreadHandler,且看下面介绍.
cameraHanler.sendEmptyMessage(0);
Thread.sleep(150);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//向用户线程发送消息,刷新一下ImageView。
Message msg = new Message();
recoverHandler.sendMessage(msg);
}
private Handler recoverHandler = new Handler() {
@Override
publicvoid