java多媒体技术.docx
《java多媒体技术.docx》由会员分享,可在线阅读,更多相关《java多媒体技术.docx(35页珍藏版)》请在冰豆网上搜索。
java多媒体技术
第1章Java多媒体技术概述
媒体(Medium)是指用以存储、传输信息的媒介或载体,语言、文字、图形、数据、书刊、报纸、画册、电报、电话、电影、广播、电视等都是媒体。
多媒体是指多种媒体的综合开发利用,可以指多种存储媒体,例如磁带、磁盘、光盘等,也可以指多种传输媒体,例如无线电波、电缆、光缆、网络等,又可以指多种感觉媒体,例如文字、图形、图像、声音、应用程序等,它是多种形式的信息载体。
媒体最重要的特性是其自身具备了多样性、交互性、集成性和实时性,同时它还为使用者提供了无限想象的创作空间。
在信息社会中,应用各种不同形式的媒体,可使得人与人之间的交流、沟通更加方便、简洁、明了,多种媒体的综合利用可使其交互性达到最佳效果。
多媒体技术是指应用计算机技术综合处理和创作各种不同形式的媒体信息,例如文本(text)、声音(audio)、图形(graphic)、动画(animation)、静态图像(staticimage)和动态视频图像(motionvideo)等信息,并以图、文、声等并茂的表现方式提供直观、生动的立体信息,便于人类相互间的交流。
目前,多媒体技术正在实现现代传媒的一场革命。
1.1Java多媒体处理类和接口
Java2标准的主要内置类库如图1.1所示,用于处理多媒体的类库有JavaMedia和JavaFoundationClasses(JFC,Java基础类)。
类库中提供了极其方便而又丰富的接口(多媒体支持类库API),其中包括AWT(AbstractWindowToolkit)、Swing、Java2DAPI、Java3DAPI、JAI(JavaAdvancedImaging)、JavaSound、JT(JavaTelephony)、JSAPI(JavaSpeech)、JMF(JavaMediaFramework)和JSDTAPI(JavaSharedDataToolkit)等API,它们对多媒体技术的支持能力是相当强大的,这些API体现了Java处理多媒体的能力,通过它们可以方便地实施对文本、图形、图像、声音等各种媒体数据的处理与展示。
1.1.1AWT
AWT(AbstractWindowToolkit)API是Java抽象窗口工具包,它实现了一组GUI(GraphicsUserInterface,图形用户界面)组件。
AWT属于Java2平台图形功能的范围,AWT包定义了窗口系统所显示的各种对象,它也是Java基础类(JFC)的一部分。
AWT提供了一整套图形和用户界面技术,它是创建基于窗口的图形用户界面的便利工具,利用AWT类库,通过“窗口”、“按钮”、“菜单”等可视的灵活方式提供人机交互的手段,使人机交互更为直观和生动,同时AWT还制定了响应和处理人机交互事件的机制。
图1.1Java2标准的主要API
1.1.2Swing
SwingAPI是属于Java2基础类(JFC)的一部分,它实现了一组新的GUI(GraphicsUserInterface,图形用户界面)组件,Swing扩展了AWT组件集,是以100%纯Java语言实现的。
SwingAPI组成了JFC的用户界面功能的核心部分,它不仅仅是AWT组件的替代品,而且在这些组件的基础上有了很大进步,同时外加了一些AWT没有的新组件,例如树视图、列表框等。
Swing可以自动产生与任何OS(操作系统)平台(例如Windows、Solaris、Macintosh)相吻合的外观感觉效果。
1.1.3Java2DAPI
Java2DAPI是Java用于开发二维图形的API,它体现了Java对处理二维图形的支持。
在Java的AWT和Swing类库中,提供了一些简单的二维图形处理功能,而Java2DAPI则提供了强大灵活的并且独立于图形设备和分辨率的二维图形处理功能。
Java2DAPI可以支持多种图形、字体、图像的处理,并且提供了统一的图形转换机制。
1.1.4Java3DAPI
Java3DAPI是Java用于开发三维图形的API,它体现了Java对处理三维图形的支持,Java3DAPI从高层次为Java程序开发者提供了对三维实体的创建、操纵和着色等功能,它简化了开发Java三维图形软件的工作,另外,Java3DAPI的低级API依赖于目前已经有的三维图形处理系统,例如Direct3D、OpenGL、QuickDraw3D和XGL等。
Java3DAPI的体系结构可以使其开发的应用程序“到处运行”,又使其可以充分利用现有系统的三维特性和处理方法。
1.1.5JAIAPI
JAI(JavaAdvancedImagingAPI)是Java用于处理图像的API,JAI实际上是一组Java类库,它实现了一组核心图像处理能力的方法和一组核心的图像处理运算符,其中包括许多点、区域和频域的运算符。
JAI提供比Java2DAPI和Java基础类库更强的图像处理功能,并且同时与Java2DAPI和Java基础类库兼容,JAI可以将复杂的、高性能的图像处理技术融合到Java小程序和Java应用程序中,从而扩展了Java平台。
1.1.6JavaSoundAPI
JavaSoundAPI是Java用于处理音频(声音)的API,它实际上是一个非常高质量的32声道音频播放器和MIDI控制的声音合成器。
JavaSoundAPI支持多种音频文件格式,例如AIFF、AU和WAV格式,以及多种基于MIDI音乐的文件格式。
JavaSoundAPI提供的音频播放器可以播放8比特或16比特、单声道或立体声、采样率在8kHz~48kHz范围内的各种音频数据。
1.1.7JTAPI
JT(JavaTelephony)API是Java用于处理电话语音和操作的API,JTAPI一般应用于嵌入式设备中,在J2SE平台中,它可以将电话功能融合到计算机技术中。
JTAPI实际上是一组模块化应用程序编程接口,它使Java程序开发者能够创建与平台无关的、具有电话性能的Java应用程序和小程序,例如Internet电话、交互式语音应答器等。
1.1.8JSAPI
JS(JavaSpeech)API是Java用于处理语音识别和语音合成的API,实际上在API中定义了一种软件接口,它使得语音程序的开发者能够将更加精密而自然的用户语音识别和语音合成的应用接口加入到Java应用程序和小程序中,以达到语音处理程序在多种平台上运行的目的。
1.1.9JMFAPI
JMF(JavaMediaFramework)API是Java主要用于处理视频、音频媒体流的API,实际上它是一组Java类库,它可以实现视频和音频的采集、传输、接收和播放等功能。
JMF提供的媒体播放器,可以播放例如MPEG-1、MPEG-2、QuickTime、AVI、WAV、AU、MIDI等多媒体数据。
在Java应用程序或小程序中应用JMF技术可在不同平台上处理媒体流数据。
另外,JMF还为其他多媒体API提供一些基础功能,例如音频处理技术等。
1.1.10JSDTAPI
JSDT(JavaSharedDataToolkit)API是Java用于处理多媒体传输的API,它为交互的、协作式的多媒体的应用提供了多点的数据传输服务,它支持全双工的多点通信功能,同时也支持多点广播功能。
另外,JSDT提供基于令牌的分布式同步机制,可使得在不同地点的用户访问同一资源而不发生碰撞。
1.2计算机常用的多媒体文件类型
在计算机应用领域中,根据媒体的不同性质,通常将媒体分为文字、声音、图形、图像、动画、视频、应用程序等文件类型,其表现形式通过计算机数据文件格式加以区分,例如,常见的媒体文件格式有纯文本格式(*.txt)、Word文档格式(*.doc)、图形BMP格式(*.bmp)、图像JPEG格式(*.jpg)、动画GIF格式(*.gif)、声音媒体WAV格式(*.wav)和MIDI格式(*.mid)、视频AVI格式(*.avi)和MPEG格式(*.mpg)以及应用程序文件格式(*.exe)等。
表1.1为常用的多媒体文件格式以及目前通过JavaAPI可处理的多媒体文件类型。
表1.1常用的多媒体文件格式
多媒体类型
文件扩展名
说明
JavaAPI
文本
txt
纯文本文件
√
html
超文本文件
√
chm
编译过的HTML文件
√
htx
扩展HTML模板
√
jsp
动态网页文件
√
asp
动态网页文件
√
php
PHP脚本HTML网页文件
wri
写字板文件
rtf
RichTextFormat格式文件
doc
Word文件
√
dot
MicrosoftWord文档模板文件
xls
MicrosoftExcel电子表格文件
√
ppt
MicrosoftPowerpoint演示文稿文件
√
pdf
AdobeAcrobat可导出文档格式文件
√
hlp
帮助文件
√
inf
信息文件
√
cfg
配置文件
√
ini
初始化文件
√
log
日志文件
√
wps
WPS文件
asc
ASCII文本文件
√
ans
ANSI文本文件
√
chr
字符集、字体文件
√
sig
符号文件
√
续表
多媒体类型
文件扩展名
说明
JavaAPI
图形、图像
bmp
Windows位图文件
√
gif
图形交换格式文件、CompuServe位图文件
√
pic
PC画图位图文件
√
jpg、jpeg
JPEG压缩的位图文件
√
cmp
JPEG位图文件
√
jtf
JPEG位图文件
√
tif、tiff
标记图像格式文件
√
tga
Targa位图格式文件
mac
MacPaint图像文件
cgm
计算机图形元文件
cam
Casio照相机格式
fax
FAX传真类型图像格式
√
ico
Windows图标文件
√
cpx
CorelPresentationExchange压缩图形文件
icl
图标库文件
cur
Windows光标文件
√
fif
Fractal图像文件
qif
QuickTime相关图像文件
grf
Grapher图形文件
pct
MacintoshPICT绘画文件
2d
VersaCAD的二维绘画文件
3d
VersaCAD的三维绘画文件
动画
gif
图形交换格式文件、CompuServe位图文件
√
mov
QuickTime动画文件
√
swf
Flash动画文件
flc
AutoDesk动画文件
pli
AutodeskFLIC动画文件
ani
Windows系统中的动画光标
cmv
CorelMove动画文件
m3d
CorelMotion3D动画文件
gl
动画格式
scn
TrueSpace2场景文件
音频
au
Sun/NeXT/DEC/UNIX声音文件
√
wav
标准Windows波形声形文件、声音文件
√
mid、midi
乐器数字接口的音乐文件、MIDI音乐文件
√
mp2
MPEGLayer二音频文件
mp3
MPEGLayer三音频文件
√
pcm
声音文件格式
√
续表
多媒体类型
文件扩展名
说明
JavaAPI
音频
rmi
MIDI音乐格式文件
√
wma
WindowsMedia声音压缩文件格式
ra(ram)、rpm
RealAudio网络实时播放音频文件
sd
SoundDesigner声音文件
aif、aiff
音频互交换文件
aifc
压缩AIF文件
ogg
OGG压缩声音文件格式
kar
卡拉OKMIDI文件(文本+MIDI)
√
cda
CD音频轨道文件格式
alaw
欧洲电话音频格式
gdm
铃声、口哨声和声音板模块格式
sf
IRCAM声音文件格式
sfd
SoundStage声音文件数据
sfi
SoundStage声音文件信息
视频
avi
AudioVideoInterleave电影格式、视频文件
√
mov
QuickTime动画、QuickTimeforWindows电影文件
√
mpg、mpeg
MPEG视频文件
√
dv
数字视频文件
dat
VCD视频文件、MPEG格式的文件
rm
RealVideo视频文件
ram
RealAudio和RealVideo的流媒体文件
viv
VivoActivePlayer流视频文件
lrc
Intel可视电话文件
fla
MacromediaFlash电影文件
byu
电影文件格式
其他
exe
可执行程序文件
√
com
命令文件
√
dll
动态链接库
drv
驱动程序
jar
Java档案文件
√
zap
Windows软件安装配置文件
arj
RobertJungARJ压缩包文件
zip
ZIP压缩档案文件
√
rar
RAR压缩档案文件
√
lzh
LHARC压缩档案文件
sea
自解压档案文件
pal
压缩文件
bin
二进制文件
√
续表
多媒体类型
文件扩展名
说明
JavaAPI
其他
cab
Microsoft压缩档案文件
√
clp
Windows剪贴板文件
√
bat
批处理文件
√
bak
备份文件
计算机常用的多媒体文件分为以下几大主要类型:
1.文本文件类型
数字和文字统称为文本文件类型,属于符号化媒体。
2.图形、图像文件类型
以点阵或矢量形式出现的、具有各种分辨率的显示在多媒体计算机屏幕上的图形和图像的文件类型,属于图形类媒体。
3.动画文件类型
将一组连续的、具有相关性运动的图形和图像以固定的频率在计算机屏幕上循环显示出来的文件类型,属于动画类媒体。
4.音频文件类型
经过采集、压缩、合成等数字化处理的在多媒体计算机中通过特殊设备(声卡等)可以连续播放的声音、语音的文件类型,属于音频类媒体。
5.视频文件类型
经过采集、压缩、合成等数字化处理的在多媒体计算机中可以连续播放的图像和声音的文件类型,属于视频类媒体。
6.其他文件类型
一些应用于多媒体计算机中的与媒体相关的文件类型,例如可执行文件等。
1.3搭建Java多媒体开发环境
在使用Java多媒体API开发多媒体应用程序时,除了AWT、Swing和Java2DAPI封装到J2SDK中,其他的Java多媒体API都是独立封装单独提供的。
有些Java多媒体API除提供运行环境外,还提供了Java多媒体应用程序的开发环境,在开发Java多媒体应用程序之前则需要安装、建立和测试Java多媒体应用程序的开发和运行环境。
由于Java语言的与平台无关性,本书所有Java多媒体应用程序实例都是在Windows操作系统下开发的,因此,开发工具和Java虚拟机都应用于Windows操作系统环境中,对于其他操作系统,例如UNIX、Linux等操作系统,在安装了Java多媒体运行环境后,Java多媒体应用实例则可以直接运行而不需要重新编译。
Sun公司提供了Java多媒体应用程序的基础开发和运行环境,其他公司也提供了一些开发环境,尤其是一些优秀的集成开发环境可以方便、快捷地编写Java语言程序,例如,Borland公司的JBuilder、Microsoft公司的VisualJ++、IBM公司的VisualAgeforJava、Symmatec公司的VisualCafe、Sun公司的JavaWorkShop等。
选择一个好的开发环境是有必要的,选择一个好的开发工具的依据可以归纳为:
开发环境界面是否友好;编译效率是否高;是否提供编程向导;是否有可视化编程以及可视化的调试器;能否在浏览器中调试JavaApplet小程序,能否为使用者完成一些重复的劳动等。
1.3.1J2SDK的安装与设置
无论选择何种开发工具开发Java多媒体应用程序,J2SDK则是必须使用的。
J2SDK是Java2SoftwareDevelopmentKit的简称,其前身是JDK(JavaDevelopmentKit)。
J2SDK和JDK都是SunMicrosystems公司推出的一套Java语言程序开发工具兼作运行Java语言程序的平台(Java虚拟机JVM),因此,开发Java语言程序,J2SDK是必备的。
在Java2标准中,J2SDK包含以下四个部分:
(1)J2EE(Java2PlatformEnterpriseEdition),适用于在服务器端Java语言程序的开发兼程序运行平台。
(2)J2SE(Java2PlatformStandardEdition),适用于在一般计算机的Java语言程序的开发兼程序运行平台。
(3)J2ME(Java2PlatformMicroEdition),适用于消费类电子产品中嵌入式系统Java语言程序的开发兼程序运行平台。
(4)JavaCard,适用于在SmartCard(IC卡)上的Java语言程序的开发兼程序运行平台。
J2SDK包含了一些Java语言程序开发的基本工具如下:
●javac:
Java语言编译器;
●java:
Java语言应用程序的启动器;
●appletviewer:
JavaApplet小程序运行和调试器;
●javadoc:
Java语言API文档生成器;
●jar:
管理Java语言归档(JAR)文件;
●jdb:
Java语言程序调试器;
●javap:
类文件解析器(反编译器);
●extcheck:
检测Jar冲突的实用程序;
●rmic:
为远程对象生成stub和skeleton类;
●rmid:
启动激活系统守护进程,在Java虚拟机上注册和激活对象;
●rmiregistry:
在当前主机的指定端口上启动远程对象注册服务程序;
●serialver:
返回serialVersionUID(系列号及版权);
●jarsigner:
为Java归档(JAR)文件产生签名,校验已签名的jar文件的签名;
●keytool:
管理由私钥和认证相关公钥的密钥仓库(数据库)。
在开发和运行Java多媒体应用程序之前,首先需要在计算机操作系统中安装J2SDK。
J2SDK是Sun公司免费提供的,在Sun公司()和Sun公司中国()网站上都可以下载到。
J2SDK是一个自解的EXE文件,执行该文件,J2SDK则有自动安装向导。
当在Windows系统中安装了J2SDK后,其基本工具则安装在..\J2SDK..\bin\目录中。
J2SDK工具都是在DOS提示符窗口中以行命令方式应用的。
当在计算机操作系统中安装好J2SDK后,在使用J2SDK编译、执行Java语言程序之前,还需要在计算机操作系统中设置开发和运行Java程序的环境变量,以便计算机操作系统可以找到J2SDK提供的命令和类库,例如,在Windows2000中设置系统环境变量的操作步骤为(J2SDK安装在C:
\J2SDK\目录中):
(1)右击Windows桌面【我的电脑】,选择右键菜单中【属性】菜单项,在弹出的【系统特性】对话框中选择【高级】选项卡,如图1.2所示。
在【系统特性】的【高级】选项卡中单击【环境变量(E)...】按钮,弹出【环境变量】对话框,如图1.3所示。
图1.2【系统特性】对话框图1.3【环境变量】对话框
(2)当建立Windows操作系统新的环境变量时,在【环境变量】对话框的【系统变量】区域中单击【新建(W)...】按钮,弹出【新建系统变量】对话框,如图1.4所示。
在该对话框中输入【变量名】为JAVA_HOME和【变量值】为C:
\J2SDK的新的系统环境变量参数,即在Windows2000操作系统中指定了J2SDK工具和类库的路径。
图1.4【新建系统变量】对话框
(3)与步骤
(2)操作相同,在Windows2000操作系统中还可以添加Java类库的路径,例如,新建CLASSPATH变量名,在CLASSPATH变量值中输入“C:
\J2SDK\lib\tools.jar;”和“C:
\J2SDK\lib\dt.jar;”等值,即在计算机操作系统中指定了Java类库的路径。
设置完系统环境变量后,开发和运行Java语言程序时,Java语言编译器和Java虚拟机就可以找到支持编译和运行的Java类库。
1.3.2Java3DAPI的安装与设置
Java3DAPI是Sun公司提供的专门开发和运行Java三维图形、图像应用程序的,它同样也需要J2SDK的支持,因此,在安装Java3DAPI之前,需要先安装好J2SDK。
另外,Java3DAPI还需要OpenGL、DirectX的支持,所以,在运行Java三维图形、图像应用程序时,还需要在计算机中安装OpenGL或DirectX软件。
OpenGL和DirectX可以从http:
//www.opengl.org/和Microsoft公司的的网站上下载。
安装OpenGL或DirectX对计算机的硬件也有一定的要求,安装时请参照安装和使用说明。
Java3DAPI是Sun公司免费提供的,在Sun公司的java-media/3D/download.html网站上可以下载。
应用于Windows操作系统中的Java3DAPI有两个版本,OpenGL版本和DirectX版本,需要根据计算机中安装了OpenGL还是DirectX来确定使用哪个版本的Java3DAPI。
应用于Windows操作系统中的无论是哪个版本的Java3DAPI都是一个自解的EXE文件,直接在Windows操作系统中执行该文件,即进入Java3DAPI安装向导,根据向导提示可以完成Java3DAPI的安装。
安装Java3DAPI时应注意选择安装路径,因为,Java3DAPI的运行环境是在J2SDK的支持下实现的。
在Java3DAPI的安装过程中,最好选择将Java3DAPI的运行环境安装在J2SDK的路径中,如图1.5所示,使Java3DAPI的运行和开发环境与J2SDK融为一体,这样可以免去在计算机操作系统中设置开发和运行Java3D程序的环境变量的步骤,因为在安装J2SDK时已经设置好了。
目前,Java3D图形和图像技术主要通过计算机显示屏显示出三维图形和图像,因此,还需要计算机硬件的支持,用于显示时,则需要计算机显示器和在计算机主机中的显示卡的支持,还需要OpenGL或DirectX、Java3DAPI和J2SDK的支持,它们的层次关系如图1.6所示。
一般OpenGL和DirectX要求计算机屏幕设置为16位或24位真彩色模