多媒体编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字音频
目前Java支持的声音格式主要有AIFF、AU、WAV、 MIDI、RMF等,音质可为8位或6位的单声道和立体声, 采样频率从8kHz到48kHz,当然音频越好占用的资源 就越多,网络下载时间越长。因此对于面向网络的 Applet而言,必须考虑文件的大小,在音质和文件大 小之间采取折衷办法。 Java提供了两种播放声音的方式,一种是通过Applet 类的play方法,一种是通过AudioClip接口中的方法播 放。 void play(URL url) void play(URL url,String name); 如声音文件 audio.mid 和 applet 文件存放在同一目录下, 就可以这样表达: play(getCodeBase(),"audio.mid");
小结
本章主要介绍了Applet程序的设计方法。 介绍Applet的基本工作原理、Applet和 HTML文件的配合、Java图形用户界面 的标准组件、组件布局管理、Java事件 处理机制、窗口、菜单和对话框的设计、 Java的图形处理以及多媒体编程。 难点:布局管理和事件处理机制
数字音频
play()方法只能将声音播放一次,若想循环播放作为 背景音乐,就需要功能更为强大的AudioClip类,它能 更有效地管理声音的播放操作。AudioClip类包含在 java.applet类库中,使用该类时,程序一定引入import java.applet.AudioClip。 AudiClip getAudioClip(URL url); AudiClip getAudioClip(URL url,String name); 创建了AudioClip对象后,声音文件就可以装载了,可 调用它的方法处理声音文件。如果该方法找不到指定 的声音文件,将返回 null ,此时不能引用所创建的对 象。AudioClip只有3中方法: void play() 播放一遍 void loop() 连续播放 void stop() 停止播放
图像
对于 Apple 来说,类 Applet 中提供了 getImage() ,可以 直接载入图像,方法格式如下: Image getImage(URL url) Image getImage(URL url,String name); 如果图像文件和Applet位于同一个目录下面,就可以 通过getCodeBase()方法获得地址;若图像文件和包含 Applet的HTML文件位于同一个目录下面,可以使用 getDocumentBase()获得基地址。
图像的处理
(2) 图像的处理 java.awt.image提供了图像过滤器对图像进行处理,包括 ImageFilter和它的两个子类CropImageFilter与 RGBImageFilter。ImageFilter类不对图像数据进行处 理,CropImageFilter用于提取图像中指定矩形区域的 图像,而RGBImageFilter用于对图像的色彩进行处理, 该类是抽象类。 ImageFilter filter=new CropImageFilter(x1,y1,w,h); ImageProducer producer=new FilteredImageSource(img.getSource(),filter); Image img=createImage(producer);
动画处理
所谓动画,就是让多幅图片一定时间循环显示,只是 肉眼看起来像是动画。计算机动画一般每秒显示10到 20帧图像。 在程序中调用了sleep()方法,它是Thread类中定义的 一个类方法(即含有Static关键字的方法),调用它能 使正在运行着的程序暂停指定的毫秒数。如果不调用 Sleep()方法,Applet就会全速运行,必将导致动画的 换帧速度太快,用户就来不及看清动画的内容,得到 的只有乱闪的画面。因而,动画的制作过程中需要不 断地调整每帧之间地时延数值,使其达到满意的播放 速度。程序中try和catch是为了让我们能完善地处理 Java程序运行时产生的错误,也就是异常处理。
多媒体编程
图像
(1)图像的加载 对于Application来说,要加载图像,需要使用类 Toolkit 提供的方法 getImage(),该方法的定义形 式有下面两种: Image getImage(URL url); Image getImage(String filename) Image imageObj=Toolkit.getDefaultToolkit().getImage( “fileObj.gif”); Image imageObj=getToolkit().getImage(“fileObj.gif”);
图像的生成
(3) 图像的生成 要生成图像,就需要实现ImageProducer接口,java.awt.image包提供 的 FilteredImageSource 和 MemoryImageSource 类 实 现 了 ImageProducer 接口,下面介绍这两个类中提供的有关图像生成 方法。 FilteredImageSource(ImageProducer origObj,ImageFilte来自百度文库 imgObj); FilteredImageSource 通过一个已经载入的图像和图像过滤器生成一 幅新的图像,当生成ImageProducer对象后,调用createImage()方 法生成图像。 其 实 , 在 图 像 的 处 理 中 介 绍 的 例 子 就 是 一 个 通 过 FilteredImageSource类生成新图像的例子。 MemoryImageSource(int width,int height,int pixel[],int offset,int scanLineWidth); MemoryImageSource类使用一个数组来得到图像中每个像素点的值, 在上面的方法中,width和height指定图像的宽和高,pixel中包括 每个像素点的值,scanLineWidth指明图像中每行的像素数。