收藏 分享(赏)

基于Android智能手机的多媒体远程监控系统设计.doc

上传人:wo7103235 文档编号:6274101 上传时间:2019-04-03 格式:DOC 页数:9 大小:5.84MB
下载 相关 举报
基于Android智能手机的多媒体远程监控系统设计.doc_第1页
第1页 / 共9页
基于Android智能手机的多媒体远程监控系统设计.doc_第2页
第2页 / 共9页
基于Android智能手机的多媒体远程监控系统设计.doc_第3页
第3页 / 共9页
基于Android智能手机的多媒体远程监控系统设计.doc_第4页
第4页 / 共9页
基于Android智能手机的多媒体远程监控系统设计.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、基于 Android 智能手机的多媒体远程监控系统设计摘要:多媒体远程监控是指通过网络实现对远程场景的音视频监控。本文主要介绍一种以Android 智能手机为控制端,以个人电脑为服务器端,以摄像头与话筒为主的多媒体设备为被控端的三点一线的远程监控系统;控制端和服务器端的网络传输采用 TCP 协议,控制端和服务器端分别采用 Android,Java 实现。关键字:Android 智能手机,多媒体远程监控, Socket 管理器,Java 多媒体框架中图分类号:一背景远程监控是指本地计算机通过远程监控软件发送指令给远程计算机,从而控制远程的监控设备采集当地信息,并不断将信息返回给本地计算机的过程。

2、远程监控必须通过网络才能实现,位于本地的计算机是操纵指令的发出端,一般称为控制端或客户端,而非本地的计算机则通常叫做被控端或服务器端。因而现在的远程监控软件一般分为两部分:一部分是客户端程序(Client) ,另一部分是服务器端程序( Server) ,通常在使用前需要将客户端程序安装到控制端载体上,将服务器端程序安装在被控端载体上,通过客户端程序向服务器端程序发出访问信号,建立远程连接,然后通过这个远程连接双方传递信息,实现远程控制。现今使用的远程控制软件大都基于以上原理。而本文将介绍一种以 Android 智能手机为控制端,以个人电脑为服务器端,同时将多媒体设备控制程序从服务器端程序分离出

3、来形成独立程序的 C/S+M(Media)架构的多媒体远程监控系统。2系统结构与实现上文介绍了本文的背景,现在将从系统总体结构设计,服务器端设计,手机端设计,多媒体设备控制程序设计四个方面介绍一下本系统的结构与实现。下面先介绍一下系统总体结构设计。1.系统总体结构设计本系统采用的是一种在传统的 C/S 架构的基础上改进的 C/S+M 架构。Android 智能手机为客户端(Client)即控制端,个人电脑为服务器端( Server) ;本系统的改进是将音视频设备程序从传统的服务器端程序分离出来独立为多媒体设备控制程序(Media) 。这样改进的好处是增强了系统各模块的独立性,便于系统的移植和维

4、护,同时也大大增加了代码的可重用性。下面先看一下本系统的总体架构图:图 2-1 系统总体架构图如上图 2-1 所示,本系统分三个大模块,现在从总体上看个模块的运作,服务器端程序启动后,初始化服务器端程序,等待手机端访问。手机端程序启动后,向服务器端发出访问信号,服务器端收到信号核实信号后,双方建立连接。手机端向服务器端发出操作指令;服务器端收到指令后解析处理指令,然后将处理后的指令传给多媒体设备控制程序;多媒体设备控制程序根据收到的指令,初始化相关设备,执行相关操作指令,采集信息,然后将信息传给服务器端;服务器端将采集到的信息压缩处理发送给手机端;手机端将信息读取。从上面叙述中可大致看出本系统

5、的结构。下面从每个模块分别介绍其结构与设计。2.服务器端设计服务器端程序将运行在个人电脑上,用 Java 实现。下面从服务器端程序的架构分析,各模块的功能描述,接口定义三方面具体介绍服务器端程序设计。然后重点介绍一下指令处理模块及其自定义的编解码协议。现在先看一下服务器端程序框架:图 2-2 服务器端功能模块图结合上图,在这逐项描述各个模块的功能:(1)初始化模块:启动应用程序后第一个运行的模块。它负责初始化应用程序的运行状态,获取网络 IP 地址端口,用户登入密码等。(2)连接监听模块:程序初始化后,开始在指定端口进行 TCP 监听,等待远程连接。(3)远程连接模块:负责进行实际的 TCP

6、连接和数据收发。当手机端发出访问信号,一旦服务器端核实接受,就分配新的 Socket 套接字完成 TCP 连接进行数据通信。(4)指令处理模块:将接收到的操作指令,进行解析处理,分析出要操作的对象及对其相关操作。(5)数据处理模块:负责将要传输的信息进行压缩并根据自定义的编解码协议封装处理,然后交给远程连接模块进行传输。为了近一步理解各模块间的协作关系,下面描述一下服务器端程序主要功能模块问的接口定义:模块名称 输入 输出指令处理模块 数据流 操作的对象及对其相关操作远程连接模块 数据流 数据流 数据处理模块 要传输的信息 经处理后可传输的数据流表 2-l 电脑端应用程序模块接口定义介绍完各个

7、模块的设计后,下面重点介绍一下指令处理模块及其自定义的编解码协议。指令处理模块的主要功能是将接收到的操作指令,进行解析处理,分析出要操作的对象及对其相关操作。它是先将数据流转化成字符串,然后用 indexOf()和 substring()方法根据自定义的编解码协议,将字符串分割,提取字符串中的信息。现在先介绍一下自定义的编解码协议的主要内容。本编解码协议定义了两种信息类型:一种是指令型,用 o 表示(order);另一种是数据型,用 d 表示(data) 。下面主要介绍第一种类型的结构。 信息类型 o 操作设备 一级操作 二级操作 信息结尾符 end例如:ocamerapictureend 这

8、段表示摄像机拍照指令,ocamerapicturesaveend 这段表示将拍的照片保存指令。下面给出编码端和解码端的主要代码:编码端 String send = null;String type = null;String equipment = equipmentnull;String firstoperate = null;String secondoperate = null;.send=send+type +“+equipment+“+firstoperate+“+secondoperate+“+“end“;.解码端String incom = null;String cutcom=

9、new String10;.BufferedReader reader =new BufferedReader(new InputStreamReader(socket.getInputStream();incom=reader.readLine();incom.indexOf(“);cutcom0 =incom.substring(0, incom.indexOf(“);incom=incom.substring(incom.indexOf(“)+1);.以上便是服务器端程序的结构与设计,下面将介绍一下手机端设计。3.手机端设计手机端程序将运行在 Android 智能手机上,用 Androi

10、d 自己的编程语言实现。与服务器端介绍方式相似,下面从手机端程序的架构分析,各模块的功能描述,接口定义三方面具体介绍手机端程序设计。然后重点介绍一下 Socket 管理器的实现和应用。 同样先看一下手机端程序框架:图 2-3 手机端功能模块图结合上图,在这逐项描述各个模块的功能:(1)初始化模块:启动应用程序后第一个运行的模块。它负责初始化应用程序的运行状态,获取环境参数,设置全局变量。(2)连接设置模块:用户设置连接 IP 地址、端口、登入密码等。(3)套接字管理器:管理套接字的状态和使用。(4)远程连接模块:它负责进行实际的网络连接和与服务器端通信。(5)指令生成模块:负责根据用户的界面操

11、作,产生相应的操作指令并根据自定义的编解码协议封装。(7)媒体数据显示模块:将处理好的媒体信息在手机上进行显示或播放。(8)数据处理模块:将远程连接模块收到的信息,进行相应处理将其转化成手机上能显示的信息。与服务器端介绍方式一样,下面同样描述一下手机端程序主要功能模块间的接口定义:模块名称 输入 输出指令生成模块 用户按键 菜单命令 远程命令数据流生成模块 命令数据 数据流远程连接模块 数据流 / 数据包 数据流 / 数据包数据解包模块 数据包 媒体数据数据流转换模块 数据流 非媒体数据表 2-2 手机端模块接口定义介绍完各个模块的设计后,下面重点介绍一下 Socket 管理器的实现和应用。

12、套接字管理器主要功能是管理套接字的状态和使用。由于 Android 平台中没有 Socket 管理器的功能,为了便于 Socket 管理,我们自行实现了 Socket 管理器功能。其中的主要代码如下:public class SocketConnectionManagement protected static Socket socket = null;public static boolean establishConnection(String ipAddress, int port) try socket = new Socket(InetAddress.getByName(ipAddr

13、ess), port); catch (UnknownHostException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return socket.isConnected();public static boolean isConnected() if (socket != null)return socket.isConnected();elsereturn false

14、;public static Socket getInstance() return socket;下面给出一段 Socket 管理器应用的实例的代码:.public Socket socket = null;.if(SocketConnectionManagement.isConnected()socket = SocketConnectionManagement.getInstance();elseSocketConnectionManagement.establishConnection(name, port);socket = SocketConnectionManagement.ge

15、tInstance();.以上便是手机端程序的结构与设计,下面将介绍一下本文在架构上改进出的模块音视频设备控制程序的设计。4.独立的多媒体设备控制程序的设计本系统中多媒体设备控制程序是基于 Java 多媒体框架实现的,故在介绍多媒体设备控制程序的设计之前,先介绍一下 Java 多媒体框架(JMF ) 。Java 媒体架构(JMF)是一个令人激动的通用的 API,它允许 Java 开发者用许多不同的方法处理媒体。JMF 的组件结构非常的灵活,它的组件一般可以分成三个部分:(1 )Input 描述某种被用于在进程休息的时候作为一个输入的媒体。(2 )process 执行某些输入上的活动。一个过程有

16、一个明确的输入和输出。大量的过程可用, 能被用于一个输入或者一批输入。这些过程能被联系起来,一个过程的输出被用于另外一个过程的输入。在这种风格中,大量的过程可能被应用于一个输入。(3)Output 描述了媒体的某些目的地。了解了 JMF 的基本内容后,现在介绍一下本系统多媒体设备控制程序的设计。首先看一下本模块的结构框架:图 2-4 多媒体设备控制程序框架图如上图,多媒体设备控制程序分为两个小模块:一个是音频程序,另一个是视频程序。而且每个程序里都有独立的操作指令线贯穿程序始终。因为这两个程序实现起来相似,现以视频程序为例,介绍一下具体实现。.public MainFrame(int n,St

17、ring cutcom) /cutcom 存储操作指令 super(“摄像头程序“);contentPane = (JPanel) this.getContentPane();this.captureDevice = getCaptureDeviceInfo();try DataSource source=Manager.createDataSource(captureDevice.getLocator();DataSource cloneableSource = Manager.createCloneableDataSource(source);player = Manager.create

18、RealizedPlayer(SourceCloneable)cloneableSource).createClone();/获 取默 认格式formatControl = (FormatControl) player.getControl(“javax.media.control.FormatControl“);Format defaultFormat = formatControl.getFormat();/FileTypeDescriptor outputType = new FileTypeDescriptor(FileTypeDescriptor.MSVIDEO);Processor

19、Model processorModel = new ProcessorModel(cloneableSource, new Format defaultFormat , outputType);processor = Manager.createRealizedProcessor(processorModel); catch (Exception e) processException(e);visualComponent = player.getVisualComponent();File file = new File(“F:/Myrecord/“);m=System.currentTi

20、meMillis();locatorString=String.valueOf(m)+“.avi“;locatorString = “file:/“ + locatorString;DataSource source = processor.getDataOutput();MediaLocator dest = new MediaLocator( locatorString );try /本地文件 传输fileWriter = Manager.createDataSink(source, dest);fileWriter.open();fileWriter.start(); catch (Ex

21、ception e) processException(e);processor.start();player.start();.以上就是本系统的结构与设计,下面看一下系统的测试过程和结果。3 测试软件测试是软件设计、实现中一个非常重要的工作阶段。通过完整的测试,系统验证正确实现了必需的功能,同时保证了软件在各种边界条件下的证确性、强壮性和高效性。这里我们采用黑盒测试和白盒测试相结合的方式对系统进行测试。下面是系统运行时的两张图片:图 3-1 摄像头采集到的信息在服务器端播放 图 3-2 手机端播放的远程服务器端的信息四总结本文介绍了基于 Android 智能手机的多媒体远程监控系统的设计,提

22、出了一种新的架构 C/S+M 架构,大大提升了系统的性能,同时增加了系统的移植性和代码的可重用性。并比较详细的介绍了系统的整体与各模块的结构与实现。在此期间重点介绍了服务器端指令处理模块及其自定义的编解码协议,手机端 Socket 管理器的实现与应用,还有 Java 多媒体框架的基本内容与应用。希望本文能对致力于远程监控行业的同行,有一些启发和帮助。参考文献:1秦耕,程克非,张亚奎 基于智能手机的电脑远程控制系统设计 微计算机信息 2009.1.7 P22-242熊利祥,吕锋 基于 JMF 的远程视频监控系统 中国科技论文在线 P1-63郭春雷,李祥 基于 J2ME 平台的手机远程监控软件的分析与实现 计算机系统应用 2005 年第 11 期 P86-884薛飞 移动终端上远程桌面通信系统的设计和实现 北京邮电人学颁仁研究生学学位论文5杨丰盛著 Android 应用开发揭秘 机械工业出版社 2010 年 1 月

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报