赞
踩
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket的英文原义是"孔"或"插座"。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。但本文主要详讲基于Android已开放源代码的远程视频监控系统。
基本过程是android作为socket客户端将采集到的每一帧图像数据发送出去,PC作为服务器接收并显示每一帧图像实现远程监控。图片如下(后来PC端加了个拍照功能)。
(PS。刚学android和java不久很多东西还不懂,高手若是知道哪些地方可以继续优化的话还请多多指点下啊)
系统代码如下:
一、android手机客户端
(1)AndroidManifest.xml文件。添加camera和socket权限,并设置了程序开始执行的activity、
(2)main.xml 设置surfaceview用于摄像头采集图像的预览
(3)login.xml 登录界面,用于输入服务器IP
(4)GetIP.java 获得服务器IP后,通过Intent启动CameraTest的activity,ip信息通过Bundle传递
(5)CameraTest.java 程序主体。设置PreviewCallback后,每当一帧图像数据采集完成后将调用PreviewCallback的onPreviewFrame函数。在这里我们将YUV格式数据转为jpg,再启用线程将数据通过socket发送出去。
二、PC服务器端
ImageServer.java 用于显示图像,并且可以拍照
开放源码如下(android我使用的是4.03的SDK,其它版本请自行更改。2.3.3版本以下的请注意initCamera()里被注释掉的哪一行)
只能在android4.04系统的手机上运行成功哦。
下面是测试成功时的启动画面:
源码链接:
上文主要详讲了android手机客户端以及PC服务器端两部分内容,android手机客户端主要讲5个小步骤的内容,PC服务器端主要用代码形式详讲ImageServer.java 用于显示图像,并且可以拍照的内容。详细的内容可以看上文的内容,想要生日了解的同学可以自己网上查找更详细的资料来学习。希望本文对你有些许帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。