java异常处理的优劣之道

java异常处理的优劣之道

ID:36014344

大小:91.00 KB

页数:5页

时间:2019-04-29

java异常处理的优劣之道_第1页
java异常处理的优劣之道_第2页
java异常处理的优劣之道_第3页
java异常处理的优劣之道_第4页
java异常处理的优劣之道_第5页
资源描述:

《java异常处理的优劣之道》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、利用JAVA实现局域网的跨平台实时视频传输吴良斌(福建信息职业技术学院福州,350003)摘要:本文首先分析了在局域网中视频传输的特点和模型及存在的问题,并针对不同的平台,提出一种通用的实时视频传输的解决方案。那就是在SUN公司提出的JMF多媒体框架基础上进行扩展,实现一个与平台无关的基于RTP/RTCP协议的流式媒体传输模型的系统设计,由于流媒体传输系统本身是一个复杂和广泛的研究领域,它本身处于不断改进的过程中。基于此在本文的最后阐述了今后流媒体可能的研究方向。关键词:JAVA;客户/服务器;RTP/R

2、TCP;实时视频传输;JMF5绪论目前在局域网内部实时传输视频已经得到广泛应用。且以传输视频的局域网大多数是有线局域网,主要因为有线局域网技术成熟,传输速度快,稳定性好。但在视频数据量大时,也会出现工作不稳定、数据堵塞、甚至于严重的延迟现象。要能实现视频传输与平台的无关性,我们首先要知道在局域网中视频传输的典型模式。在局域网中视频传输采用的是服务器/客户机模式,一个视频系统的功能模块如下图所示,它包括5个功能模块:l视频采集和视频显示:视频采集设备负责将视频信息输入计算机,如数码摄像头等。而视频显示负责播

3、放视频信息,如一般的显示终端。l编码和解码工具:编码软件负责将视频采集设备传送过来的视频信号编码成流媒体格式,而解码软件与之相反负责将媒体数字信号转化成终端可识别的信息。l视频压缩和视频解压:视频媒体数据量巨大必须将编码后的视频媒体数据进行高效的压缩,然后将压缩后的数据在网络上传输。其相应的解压模块负责将数据还原成为原来的流媒体格式。l传输协议:流媒体数据由于自身的特点,在网络上传输时将采用和过去诸如文字,静态图像等不同的网络协议来进行传输。l传输网络:一般来说视频传输可以在现有任何网络上进行传输,更高的

4、带宽将有利于视频传输效率的提高,也能够保证其播放质量。实时视频传输工作流程在上图中,可以看到作为整个传输模式的底层,传输协议有着至关重要的作用。在本文实现的方案中主要采用的是RTP/RTCP协议,该协议是由IETF为视音频的实时传输而设计的传输协议。当前的视频传输系统存在的问题主要有:可扩展性差、格式不统一等。我们都知道JAVA具有平台无关性的特点,对此本文利用JMF(JavaMedia5Framework)的多功能并对其原有接口加以扩展,就可以实现基于RTP/RTCP的流媒体传输模型。1基于JMF架构实

5、现RTP/RTCP传输模型JMF(JavaMediaFramework)是Sun公司提出的Java媒体架构,它是对应Java2平台标准版(J2SE)的一种可选用的应用编程接口(API)。JMF的源代码通过SCSL(Sun社团源代码许可模式)发布。下面给出本文实现视频传输系统的结构及其有关的代码。1.1结构介绍1.1.1服务器:接受多台客户端连接,传送客户端信息VideoServer.java:定义服务器Socket和输入输出流ServerFrame.java:定义服务器界面1.1.2客户端:通过服务器,互

6、相浏览视频、收听音频和文字交流RTPTransmit.java:定义RTP视音频数据传送RTPReceive.java:定义RTP视音频数据接收VFWAuto.java:调用JMF视音频设备接口Client.java:定义客户端Socket和控制RTP传输MainFrame.java:定义客户端主界面和功能1.1.3其他类:服务器和客户端共享包CustInfo.java:客户端信息类Customer.java:客户端请求包,序列化Msg.java:客户端文字聊天记录1.2关键组件的实现1.2.1视频、音频

7、设备捕获在“系统设置”窗口中调用JMF的设备搜索接口,调用代码如下:VFWAuto.java部分代码:publicVFWAuto(){Vectordevices=(Vector)CaptureDeviceManager.getDeviceList(null).clone();Enumerationenum1=devices.elements();while(enum1.hasMoreElements()){CaptureDeviceInfocdi=(CaptureDeviceInfo)enum1.next

8、Element();Stringname=cdi.getName();if(name.startsWith("vfw:"))CaptureDeviceManager.removeDevice(cdi);}intnDevices=0;for(inti=0;i<10;i++){Stringname=com.sun.media.protocol.vfw.VFWCapture.capGetDriverDescriptionName(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。