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

上传人:滴答 文档编号:1271571 上传时间:2019-01-25 格式:DOC 页数:9 大小:5.84MB
下载 相关 举报
基于Android智能手机的多媒体远程监控系统设计.doc_第1页
第1页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

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

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

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

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

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

7、 处理模块 数据流 操作的对象及对其相关操作 远程连接模块 数据流 数据流 数据 处理 模块 要传输的 信息 经处理后可传输的 数据 流 表 2-l 电脑端应用程序模块接口定义 介绍完各个模块的设计后,下面重点介绍一下指令处理模块及其自定义的编解码协议。 指令处理模块的主要功能是 将接收到的操作指令,进行解析处理,分析出要操作的对象及对其相关操作 。 它是先将数据流转化成字符串,然后用 indexOf()和 substring()方法 根据自定义的编解码协议,将字符串分割,提取字符串中的信息。现在先介绍一下自定义的编解码协议的主要内容。 本编解码协议定义了两种信息类型:一种是指令型,用 o 表

8、示 (order);另一种是数 据型,用 d 表示( data)。下面主要介绍第一种类型的结构。 信息类型 o 操作设备 一级操作 二级操作 信息结尾符 end 例如: ocamerapictureend 这段表示摄像机拍照指令, ocamerapicturesaveend 这段表示将拍的照片保存指令。 下面给出编码端和解码端的主要代码: 编码端 String send = null; String type = null; String equipment = equipmentnull; String firstoperate = null; String secondoperate =

9、null; . . . send=send+type +“+equipment+“+firstoperate+“+secondoperate+“+“end“; . . . 解码端 String incom = null; String cutcom=new String10; . . . BufferedReader reader = new BufferedReader(new InputStreamReader (socket.getInputStream(); incom=reader.readLine(); incom.indexOf(“); cutcom0 =incom.substr

10、ing(0, incom.indexOf(“); incom=incom.substring(incom.indexOf(“)+1); . . . 以上便是服务器端程序的结构与设计,下面将介绍一下手机端设计。 3.手机端设计 手机端程序将运行在 Android 智能手机上,用 Android 自己的编程语言实现。与服务器端介绍方式相似,下面从手机端程序的架构分析,各模块的功能描述,接口定义三方面具体介绍手机端程序设计。然后重点介绍一下 Socket 管理器的实现和应用。 同样先看一下手机端程序框架: 图 2-3 手机端功能模块图 结合上图,在这逐项描 述各个模块的功能: ( 1) 初始化模块:

11、启动应用程序后第一个运行的模块。它负责初始化应用程序的运行状态,获取环境参数,设置全局变量。 ( 2) 连接设置模块:用户设置连接 IP 地址、端口、 登入 密码等。 ( 3) 套接字管理器:管理套接字的状态和使用。 ( 4) 远程连接模块:它负责进行实际的网络连接和 与服务器端通信 。 ( 5)指令 生成模块:负责根据用户的 界面操作 ,产生相应的 操作指令并根据自定义的编解码协议封装 。 ( 7) 媒体数据显示模块: 将处理好的 媒体信息 在手机 上进行显示或播放。 ( 8) 数据 处理 模块: 将 远程连接模块 收到的信息 , 进行相应处理将其转化成手机上能显示的信息 。 与服务器端介绍

12、方式一样, 下面 同样 描述一下手机 端 程序主要功能模块间的接口定义: 模块名称 输入 输出 指令 生成模块 用户按键 菜单命令 远程命令 数据流生成模块 命令数据 数据流 远程连接模块 数据流 / 数据包 数据流 / 数据包 数据解包模块 数据包 媒体数据 数据流转换模块 数据流 非媒体数据 表 2-2 手机端模块接口定义 介绍完各个模块的设计后,下面重点介绍一下 Socket 管理器的实现和应用。 套接字管理器 主要功能是 管理套接字的状态和使用。 由于 Android 平台中没有 Socket 管理器的功能,为了便于 Socket 管理,我们自行实现了 Socket 管理器功能。其中的

13、主要代码如下: public class SocketConnectionManagement protected static Socket socket = null; public static boolean establishConnection(String ipAddress, int port) try socket = new Socket(InetAddress.getByName(ipAddress), port); catch (UnknownHostException e) / TODO Auto-generated catch block e.printStackT

14、race(); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); return socket.isConnected(); public static boolean isConnected() if (socket != null) return socket.isConnected(); else return false; public static Socket getInstance() return socket; 下面给出一段 Socket 管理器应用的实例的代码: . . .

15、 public Socket socket = null; . . . if(SocketConnectionManagement.isConnected() socket = SocketConnectionManagement.getInstance(); else SocketConnectionManagement.establishConnection(name, port); socket = SocketConnectionManagement.getInstance(); . . . 以上便是手机端程序的结构与设计,下面将介绍一下本文在架构上改进出的模块 音视频设备控制程序的设

16、计。 4.独立的多媒体 设备控制程序的设计 本系统中 多媒体 设备控制程序是基于 Java 多媒体框架实现的,故在介绍 多媒体 设备控制程序的设计之前,先介绍一下 Java 多媒体框架( JMF)。 Java 媒体架构 (JMF)是一个令人激动的通用的 API,它允许 Java 开发者用许多不同的方法处理媒体。 JMF 的组件结构非常的灵活,它的组件一般可以分成三个部分: ( 1) Input 描述某种被用于在进程休息的时候作为一个输入的媒体。 ( 2) process 执行某些输入上的活动。一个过程有一个明确的输入和输出。大量的过程可用 , 能被用于一个输入或者一批输入。这些过程能被联系起来

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

18、 super(“摄像头程序 “); contentPane = (JPanel) this.getContentPane(); this.captureDevice = getCaptureDeviceInfo(); try DataSource source=Manager.createDataSource (captureDevice.getLocator(); DataSource cloneableSource = Manager. createCloneableDataSource(source); player = Manager.createRealizedPlayer (Sou

19、rceCloneable)cloneableSource).createClone(); /获取默认格式 formatControl = (FormatControl) player. getControl(“javax.media.control.FormatControl“); Format defaultFormat = formatControl.getFormat(); / FileTypeDescriptor outputType = new FileTypeDescriptor (FileTypeDescriptor.MSVIDEO); ProcessorModel proces

20、sorModel = 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.currentTimeMillis

21、(); 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 (Exc

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

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

展开阅读全文
相关资源
相关搜索

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

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。