




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 java 多媒体设计,9.1图形处理 9.2图像处理 9.3 2D图像 9.4 动画处理 9.5 播放声音,9.1图形处理,Java所有与图形有关的功能都包含在AWT包里。AWT(Abstract Windows Toolkit)是抽象窗口工具包的缩写,支持窗口界面的创建、简单图形的绘制、图形化文本 输出和事件监听。用户可利用AWT提供的类和方法,在窗口上绘制各种各样的图形和 文本,增加界面的美观。基本图形包括点、线、圆、矩形等,是构成复杂图形的基础。绘制基本图形要使用AWT中的Graphics类,它提供了各种基本图形的绘制方法。,下一页,返回,9.1图形处理,911 直线 public void drawLine( int x1, int y1, int x2, int y2 ) 参数( x1, y1 )和( x2, y2 )是所画直线的两个端点坐标。方法的功能是:在点 (x1,y1) 和 (x2,y2) 之间画直线。 在窗口上随机绘制10条直线。 / DrawLines.java import java.applet.*; import java.awt.*; import java.lang.*; public class DrawLines extends Applet public void paint(Graphics g),上一页,下一页,返回,9.1图形处理,int i,x1,y1, x2,y2; for(i=1;i=10;i+) x1=(int)(Math.random()*10); y1=(int)(Math.random()* 200); x2=(int)(Math.random()* 380); y2=(int)(Math.random()*200); g.drawLine(x1,y1,x2,y2); ,上一页,下一页,返回,9.1图形处理,根据题目的要求,我们使用一组随机数来指定直线两个端点的坐标,并采用循环结构实现10次循环。drawLine方法中的4个整型参数代表直线两个端点的坐标。random()是Math类中的一个方法,该方法返回一个double值,值域为(00,10)。Math类是java1ang包的一部分java1ang可由编译器自动引入,所以我们不必把Math类引入到程序中。直接调用random方法得到返回值太小,在实际应用中往往乘以一个整数因子,并强制类型转换 为一个合适的整数。如(int)(Mathrandom()x100)的实际取值范围为0,100。在图形方式下要想准确定位,必须了解屏幕坐标系的构成。Java定义一个窗口工作区的左上角为坐标原点(o,o),以像素点为单位,顺序向右和向下延伸。图形的大小如超过窗口,则超出部分不会显示出来。,上一页,下一页,返回,9.1图形处理,9.1.2设置颜色. 创建 Color类的一个对象 (1)public Color ( int r, int g, int b ) 整数 r, g, b 分别表示红,绿,蓝的含量 (2)public Color(int r,int g,int b,int a); 整数a表示alpha值,它们的取值为 0 到 255。 (3)public Color ( float r, float g, float b ) 单精度浮点数 r, g, b分别表示红,绿,蓝的含量 (4)public Color(float r,float g,float b,float a) 单精度浮点数a表示alpha值,它们的取值范围是 0.0f到1.0f,上一页,下一页,返回,9.1图形处理,(5)public Color(int rgb) 整型参数rgb指明红(1623bits表示) 绿(815bits表示)蓝(07bits表示)三色的取值。 (1)使用Graphics类中方法: public void setColor( Color c ) 设置颜色。 (2)使用Color类的以下几个方法获取颜色对象: public Color getColor( ); 返回当前颜色对象。 public int getRed();得到颜色对象的red分量。 public int getGreen();得到颜色对象的green值。 public int getBlue();得到颜色对象的blue值。 public int getAlpha();得到颜色对象的alpha值。,上一页,下一页,返回,9.1图形处理,/ TestColor.Java import java.applet.Applet; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; public class TestColor extends Applet public void paint( Graphics g ) ,上一页,下一页,返回,9.1图形处理,String s = “中国北京“; Color c1=new Color(255,0,0); Color c2=new Color(255,0,0,128); Color c3=Color.blue; g.setColor(c1); g.drawString(“红色:“+s,20,20 ); g.setColor(c2); g.drawString(“红色:“+s,20,40 ); g.setColor(c3); g.drawString(“蓝色:“+s,20,60 ); ,上一页,下一页,返回,9.1图形处理,9.1.3字符数组和字节数组的显示 Graphics 类的以下方法显示字符串、字符数组和字节数组: (1)绘制字符串 void drawString( String string, int x, int y ) 坐标点 ( x, y ) 与要绘制的字符串 string左下角相对应。 (2)绘制字符数组 void drawChars( char chars, int offset, int number, int x, int y ) offset 是数组的起始下标,number 是要绘制的元素个数。 (3)绘制字节数组 void drawBytes( byte bytes, int offset, int number, int x, int y ) offset 是数组的起始下标, number 是要绘制的元素个数。,上一页,下一页,返回,9.1图形处理,/ DrawCharByte.java import java.applet.*; import java.awt.*; public class DrawCharByte extends Applet public void init() setBackground(new Color(0,128,0); public void paint( Graphics g ) g.setFont(new Font(“华文行楷“,Font.BOLD,40);,上一页,下一页,返回,9.1图形处理,String s = “中国北京“; char ch=new chars.length(); s.getChars(0,4,ch,0); g.setColor(Color.red); g.drawChars(ch,2,2,20,40); byte byt=65,66,67,68,69,70,71,72,73,74,75; g.setFont(new Font(“Arial“,Font.ITALIC,30); g.setColor(Color.red); g.drawBytes(byt,0,5,120,40); g.setColor(Color.white); g.drawBytes(byt,0,5,122,38); ,上一页,下一页,返回,9.1图形处理,9.1.4 绘制Rectangle (1) 画矩形: public void drawRect( int x, int y, int width, int height ); x, y是矩形左上角坐标;width,heigh是矩形的宽度和高度。 (2) 用当前设置的颜色画填充矩形: public void fillRect( int x, int y, int width, int height ); (3) 清除指定的矩形区域,该区域颜色将为背景颜色: public void clearRect( int x, int y, int width, int height );,上一页,下一页,返回,9.1图形处理,(4) 画圆角矩形: public void drawRoundRect( int x, int y, int width, int height, int arcWidth, int arcHeight ); public void fillRoundRect( int x, int y, int width, int height, int arcWidth, int arcHeight ); 前4个参数的含义同上;arcWidth-水平方向圆弧的总宽度;arcHeight-垂直方向圆弧的总高度。,上一页,下一页,返回,9.1图形处理,/DrawRectangle.java import java.applet.*; import java.awt.*; public class DrawRectangle extends Applet public void paint( Graphics g ) setBackground(Color.cyan); g.setColor(Color.blue); g.fillRect(20,20,40,40); /为了演示clearRect()方法的效果,先画一个比清除的区域大2个像素的填充矩形。 g.fillRect(79,19,42,42);,上一页,下一页,返回,9.1图形处理,g.clearRect(80,20,40,40); g.fillRoundRect(140,20,40,40,40,40); 9.1.5 绘制椭圆和弧 (1)画椭圆 public void drawOval( int x, int y, int width, int height ); public void fillOval( int x, int y, int width, int height ); (2) 画圆弧 画圆弧就是画部分椭圆的圆弧和填充扇形。,上一页,下一页,返回,9.1图形处理,public void drawArc( int x, int y, int width, int height, int startAngle, int arcAngle ) public void fillArc( int x, int y, int width, int height, int startAngle, int arcAngle ) startAngle是弧的起始角度; arcAngle 表示从起始角度算起转多少度,逆时针为正。 画椭圆的方法drawOval(),fillOval具有相同的参数,前两个参数用来定位,实际指定的是包围椭圆的矩形的左上角位置,后2个参数指定了椭圆的宽度和高度,如果取相同值,则画出的是正圆。drawArc方法可画圆弧,fillArc方法实际画出的是扇形。圆弧是椭圆的一部分,夹 在两个角之间,因此画圆弧的方法比画椭圆的方法多了两个参数:起始角和张角(以角度为单位)。起始角确定了圆弧的起始位置;张角确定了圆弧的大小,取正(负)值为沿逆 (顺加寸针方向画出圆弧。当张角取值大于360时,画出的就是椭圆。我们用一个例子来说明这两个方法的使用。,上一页,下一页,返回,9.1图形处理,/ DrawOval.java import java.applet.*; import java.awt.*; public class DrawOval extends Applet public void paint( Graphics g ) g.setColor(Color.blue); g.drawRect(20,20,100,60); g.fillOval(20,20,100,60); g.drawOval(140,20,100,60); g.fillArc(140,20,100,60,0,60); ,上一页,下一页,返回,9.1图形处理,9.1.6画多边形 将多边形的各个顶点的坐标对应放到整型数组xPoints(x坐标)和整型数组yPoints(y坐标)中,用以下方法画多边形和填充多边形: public void drawPolygon( int xPoints, int yPoints, int points ); public void fillPolygon( int xPoints, int yPoints, int points ); 参数points表示顶点的个数。创建Polygon类的对象p画多边形 Polygon类的构造函数:,上一页,下一页,返回,9.1图形处理,Polygon( ); Polygon( int xPoints, int yPoints, int points ); 画多边形 public void drawPolygon( Polygon p ); public void fillPolygon( Polygon p ); 追加顶点坐标的方法: public void addPoint( int x, int y )。 / DrawPolygon.java import java.applet.*; import java.awt.*; public class DrawPolygon extends Applet,上一页,下一页,返回,9.1图形处理, public void paint( Graphics g ) int x=20,40,80,100,80,40; int y=40,20,20,40,60,60; g.setColor(Color.blue); g.fillPolygon(x,y,6); int x1=140,160,200,220,200,160; int y1=40,20,20,40,60,60; Polygon p=new Polygon(x1,y1,6); g.fillPolygon(p); ,上一页,下一页,返回,9.1图形处理,多边形的多边是分别用两个整数数组来表示x坐标和y坐标的,并用一个整数表示多边的顶点数,多边形可以说是封闭的,也可以是开放的,取决于最后一条直线终点坐标的取值,若和第一条直线的起点坐标重合画出的多边形为封闭的,否则为开放的。,上一页,返回,9.2 图像处理,/ ShowImage.Java import java.applet.*; import java.awt.*; public class ShowImage extends Applet public void paint( Graphics g ) Image pic=getImage(getDocumentBase(),“a.jpg“); int w=pic.getWidth(this),h=pic.getHeight(this),d=5;,下一页,返回,9.2 图像处理,g.drawImage(pic,0,0,w,h,this);/按原图宽高显示 g.drawImage(pic,w+d,0,w/2,h/2,this);/缩小为原图宽高的一半并显示 /截取原图右下角的1/4并显示 g.drawImage(pic,w+d,h/2,w+w/2+d,h,w/2,h/2,w,h,this); ,上一页,下一页,返回,9.2 图像处理,我们以这个程序为例,总结出在Java程序中显示一幅图像的步骤。图像显示分为两个步骤:首先加载图像(即将图像文件读入内存),然后画出图像。程序创建了一个Image 对象img,通过Applet的getlmage方法加载图像文件ajpg,将它和img联系起来。然 后通过Graphics的drawlmage方法显示图像。 加载图像 加载图像一般放在初始化方法init中进行。程序中的getlmage方法可加载Java支持的图像文件,它有两个参数,一个是图像文件地址,一个是图像文件名称。由于Applet 是面向网络的,因此图像文件的存储位置并不局限于本地计算机的磁盘目录,大部分情况是直接读取Web服务器上的图像文件。getlmage方法返回一个Image对象,它的调用格式为:,上一页,下一页,返回,9.2 图像处理,Image getlmage(URL url) Image getlmage(URL url,String name) 其中url是一个URL类的对象,J代表一个网络地址,例如下面的语句可以加载sun公司Web服务器指定位置上的一幅图片: getlmage(newURL(“http:jaVaskincomgraphicspeoplegif”); 上述程序中没有直接给出一个具体网络地址,因为在不熟悉网站的情况下读取图像文件是毫无意义的。另一方面,设计Applet一般是为了显示自己已经准备好的图像,所以程序使用了getCodeBase方法。getCodeBase返回的是Applet文件所在的地址,即该文件所在的目录,我们是把图像文件和Applet文件放在同一个目录下的,这样就能保证程序找到该图像文件。另外,使用getDocumentBase方法也可以达到同样目的。,上一页,下一页,返回,9.2 图像处理,2、显示图像 显示图像需要调用Graphics类的方法drawlmage,它可以将Image对象关联的图像 显示在Applet的指定位置。drawlmage方法的调用格式如下: boolean drawlmage(1mage img,int x,int y,ImageObserver observer) boolean drawlmage(1mage img,int x,int y,Color bgcolor,ImageObserver observer) 其中img就是要显示的图像,x和y是图像显示位置(x和y可取负值,表示一部分图像被移出了显示区)、bgcolor是图像显示区域的背景色、observer是图像加载跟踪器,通常将该参数指定为this,即由Applet负责跟踪图像的加载情况。 这两种方法都是将图像照原样显示,能不能对图像进行缩放呢?使用下面两种调用格式就可以对图像进行缩放显示: boolean drawlmage(1mage img, int x, int y, int width, int height, ImageObserver Observer),上一页,返回,9.3 2D图像,画图类Graphics2D: 更强大的图形处理功能。它是Graphics类的子类。 Graphics2D g2d=(Graphics2D)g; 1创建各种图形对象 java.awt.geom包中提供了很多构造图形对象的类 。 直线: Line2D line=new Line2D.Double(20.0,20.0,320.0,20.0); 起点在(20.0,20.0),终点在(320.0,20.0)。 长方形:,下一页,返回,9.3 2D图像,Rectangle2D rect=new Rectangle2D.Double(20.0,30.0,90.0,60.0); 左上角坐标为(20.0,30.0),宽、高分别为90.0和60.0 椭圆: Ellipse2D ellipse=new Ellipse2D.Double(220.0,30.0,90.0,60.0); 2改变绘图时画笔的大小 创建BasicStroke类对象,并使用Graphics2D类的方法: setStroke(BasicStroke bstroke) 可以改变画笔线条的宽度。,上一页,下一页,返回,9.3 2D图像,例如,下面的语句设置画笔线条的宽度为3像素: BasicStroke bstroke=new BasicStroke(3.0f); g2d.setStroke(bstroke); /Draw2D.java import java.applet.*; import java.awt.*; import java.awt.geom.*; public class Draw2D extends Applet public void paint( Graphics g ) ,上一页,下一页,返回,9.3 2D图像,Graphics2D g2d=(Graphics2D)g;/把父类对象强制转化为子类对象 BasicStroke bstroke=new BasicStroke(3.0f);/画笔线条的宽度 g2d.setStroke(bstroke); Line2D line=new Line2D.Double(20.0,20.0,320.0,20.0); g.setColor(Color.blue); g2d.draw(line); g.setColor(Color.red); Rectangle2D rect=new Rectangle2D.Double(20.0,30.0,90.0,60.0); g2d.draw(rect); RoundRectangle2D r_rect=new,上一页,下一页,返回,9.3 2D图像,RoundRectangle2D.Double(120.0,30.0,90.0,60.0,50.0,25.0); g2d.draw(r_rect); Ellipse2D ellipse=new Ellipse2D.Double(220.0,30.0,90.0,60.0); g2d.draw(ellipse); 用渐变颜色画填充图形 1 . java.awt包中类GradientPaint的构造方法: public GradientPaint(float x1,float y1, Color color1, float x2,float y2,Color color2);,上一页,下一页,返回,9.3 2D图像,可创建渐变颜色。 前三个参数指定坐标点(x1, y1)的颜色为color1; 后三个参数指定坐标点(x2, y2)的颜色为color2; 它们之间的颜色由color1渐变到color2。 2.通过Graphics2D类的方法: setPaint(GradientPaint gradColor) 设置画图显示的颜色为渐变色。 如何创建和设置渐变色,上一页,下一页,返回,9.3 2D图像,/Draw2DFill.Java import java.applet.*; import java.awt.*; import java.awt.geom.*; public class Draw2DFill extends Applet public void paint( Graphics g ) ,上一页,下一页,返回,9.3 2D图像,Graphics2D g2d=(Graphics2D)g;/把父类对象强制转化为子类对象 GradientPaint gradColor=new GradientPaint(0.0f,0.0f,Color.blue, 200.0f,0.0f,Color.green); g2d.setPaint(gradColor); Rectangle2D rect=new Rectangle2D.Double(0.0,0.0,200.0,60.0); g2d.fill(rect); ,上一页,下一页,返回,9.3 2D图像,java.awt.geom包中提供了AffineTransform类,实现图象的平移、缩放和旋转等功能。 1.图形的平移 public void translate(double tx,double ty); 参数tx指定图形水平方向平移的像素值; 参数ty指定图形垂直方向平移的像素值。 2.图形的旋转 public void rotate(double theta,double x,double y); 第一个参数指定顺时针方向转过的角度,以弧度为单位; 参数x和y指定平面图形转动的轴点。,上一页,下一页,返回,9.3 2D图像,3.图形的缩放 public void scale(double sx,double sy); 参数sx和sy分别表示x方向和y方向的缩放因子(倍数)。 / Draw2DTransform.java import java.applet.*; import java.awt.*; import java.awt.geom.*; public class Draw2DTransform extends Applet public void paint( Graphics g ) ,上一页,下一页,返回,9.3 2D图像,Graphics2D g2d=(Graphics2D)g;/把父类对象强制转化为子类对象 BasicStroke bstroke=new BasicStroke(2.0f); g2d.setStroke(bstroke);/设置画笔画线的宽度 g2d.setColor(Color.blue); AffineTransform transf=new AffineTransform(); QuadCurve2D quadCurve=new QuadCurve2D.Double(20.0,20.0, 60.0,15.0,80.0,80.0); g2d.draw(quadCurve);,上一页,下一页,返回,9.3 2D图像,transf.translate(100.0,0.0); double rad=Math.toRadians(360.0/30); for(int i=0;i30;i+) transf.rotate(rad,80.0,80.0); g2d.setTransform(transf); g2d.draw(quadCurve); ,上一页,下一页,返回,9.3 2D图像,transf.scale(2,2); transf.translate(100.0,0.0); for(int i=0;i30;i+) transf.rotate(rad,80.0,80.0); g2d.setTransform(transf); g2d.draw(quadCurve); ,上一页,返回,9.4 动画处理,动画是指连续而平滑地显示多幅图像。动画的质量一方面取决于图像的质量,另一方面则取决于平滑程度。在计算机上,以10一30幅每秒钟的速度显示动画即可达到满意的动画质量。在很多软件尤其是游戏软件的设计中,动画向程序员提出了挑战,但在java中实现动画则是十分简单的事情。 下面让我们一起由浅人深地编写几个动画程序实例,并通过对这些实例的逐步改进来探讨Java动画技术的关键。,下一页,返回,9.4 动画处理,9.41 动画原理 其实,计算机动画原理十分简单,首先在屏幕上显示出第一帧画面,过一会儿把它擦掉,然后再显示下一帧画面,如此循环往复。由丰人眼存在着一个视觉差,所以感觉好像 画面中的物体在不断运动。 / MovingImg.java import java.awt.*; import java.applet.*; public class MovingImg extends Applet Image star, messenger_big; int x=10; public void init(),上一页,下一页,返回,9.4 动画处理,star=getImage(getCodeBase(),“merlin.gif“); messenger_big=getImage(getCodeBase(),“messenger_big.gif“); public void paint(Graphics g) g.drawImage(star,0,0,this); g.drawImage(messenger_big,x,15,this); try Thread.sleep(50); x+=5; if(x=210) x=10; Thread.sleep(1000); catch(InterruptedException e),上一页,下一页,返回,9.4 动画处理,repaint(); 这是一个很简单的动画,在Applet中有一个小人,一个windows message的图标上不断从左边移动到右边。程序中创建了两个Image对象star和messenger_big,在init方法中分别加载了两个图像文件和这两个对象关联起来。添加了变量x用来指定飞船的画出位置,x初始化为l0。在paint方法中,注意到Applet中总是画在指定位置(x,10),而另一个则画在位置(x,15),其中x的值是不断变化的。,上一页,下一页,返回,9.4 动画处理,真正使图标实现动画效果是在trycatch块中。程序调用了sleep方法,它是 Thread类中定义的一个类方法,调用它可使程序休眠指定的毫秒数。sleep方法会产生 中断异常,因此必须放在trycatch块中。如果不调用sleep方法,程序将全速运行,必将导致换帧速度太快,画面闪烁严重。休眠时间设定为50毫秒,相当于换帧速度20(1 00050)。休眠结束后x的值加5,意味着下一帧图标画面的显示位置向右移动5个 点。当飞船移动到最右边即210点位置时,将x赋值10,图标重新回到了左边,这是在语句中实现的。paint方法的最后一条语句是调用repaint方法。repaint方法的功能是重画图像,它 先调用update方法将显示区清空,再调用paint方法画出图像。这就形成了一个循环, paint调用了repaint,而repaint又调用了paint,使图标不间断地来回移动。,上一页,下一页,返回,9.4 动画处理,运行这个Applet时,画面有闪烁现象。一般来说,画面越大,update以背景色清除显示区所占用的时间就越长,不可避免地会产生闪烁。为了达到平滑而又没有闪烁的动画 效果,就应该考虑采取一些补救措施。覆盖update方法可以降低闪烁,但不能消除它。能有效消除闪烁的方法是采用图形 双缓冲技术(graphicsdoublebuffering),请看下面改进后的程序。 / MovingImg1.java import java.applet.*; import java.awt.*;,上一页,下一页,返回,9.4 动画处理,public class MovingImg1 extends Applet Image star, messenger_big,buffer; Graphics gContext; int x=10; public void init() star=getImage(getCodeBase(),“a.jpg“); messenger_big=getImage(getCodeBase(),“messenger_big.gif“); buffer=createImage(getWidth(),getHeight(); gContext=buffer.getGraphics(); ,上一页,下一页,返回,9.4 动画处理,public void paint(Graphics g) gContext.drawImage(star, 0,x,this); gContext.drawImage(messenger_big,x,15,this); g.drawImage(buffer,0,0,this); try Thread.sleep(100); x+=2; if(x=210) x=10; Thread.sleep(1000); ,上一页,下一页,返回,9.4 动画处理,catch(InterruptedException e) repaint(); public void update(Graphics g) paint(g); ,上一页,下一页,返回,9.4 动画处理,改进后的程序比原程序增加了buffer和gContext对象,覆盖了update方法。换帧速度提高到100(1 00010),飞船每次移动2个点,动画效果更加平滑而且无闪烁。buffer是新增的Image对象,用作屏幕缓冲区。gContext是新增的Graphics对象,代表着一个图形上下文即绘图区。在init方法中,程序调用createlmage方法,按照 Applet的宽度和高度创建了屏幕缓冲区,然后调用getGraphics方法创建了buffer的绘 图区。paint方法改变了图像输出方向,两个图像都被画在屏幕缓冲区内。由于屏幕缓冲区不可见,使得画面交替时的闪烁现象也不可见。当屏幕缓冲区上的画图完成以后,再调用的drawImage方法将整个屏幕缓冲区拷贝到屏幕上,这个过程是直接覆盖,不会产生闪烁。注:这里将merlin.gif改为a.jpg作为背景,以更新覆盖。,上一页,返回,9.5 播放声音,JDKl3新增了一个功能强大的数字音频类库javaxsound,使Java程序能录制、处理和播放声音和MIDI音频数据。限于篇幅,本节仅介绍如何利用Applet播放各种声音 剪辑。 - 9.5.1 加载声音文件 Java开发工具JDKl早比以前版本支持更多的声音格式,共有5种:AIFF、AU、WAV、MIDI、RMF。音质可为8位或16位的单声道和立体声,采样频率从8 kHz到 48kHz。当然音质越好占用的资源就越多,网络下载时间就越长。对于面向网络的Applet来说,必须考虑声音文件的大小,需要在音质和文件大小之间采取折衷办法。,下一页,返回,9.5 播放声音,在Applet中播放声音十分简单,加载声音文件,然后调用play方法播放即可。Java 提供了两种播放声音的方式:一种是通过Applet类的play方法,一种是通过AudioClip接口中的方法来播放。Applet的play方法可以将声音文件的加载与播放一并完成,其调用格式如下: void play(URL url) vold play(URL url,String name) 其中URI。是一个网络地址,网络地址若包含声音文件可采用第一种形式,否则采用第二种形式,播放本地计算机上的声音文件也可采用第二种形式。假设有一个MIDI声音文件tripmid和Applet放在同一个目录下,采用如下调用格式即可播放: play(getCodeBase(),” onestop.mid”);,上一页,下一页,返回,9.5 播放声音,一旦play方法加载了该声音文件,就立即播放。如果找不到指定的声音文件,不会产生异常,只是听不到声音而已。然而,这种播放是一次性的,若要重播必须重新加载声音文件。如果你想把一个声音文件作为背景音乐连续播放,就需要引入功能更强的AudioClip接口,它包含在javaapplet类库中,程序应引入import java.Applet.AudioClip。 声音文件的加载在创建AudioClip对象的过程中实现。Applet的getAudioClip方 法可创建这样的对象,该方法加载指定网络地址的声音文件,并返回一个AudioClip对象,调用格式如下: AudioClip getAudioClip(URL url)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演出设备租赁合同
- 个人抵押汽车借款合同6篇
- 砍树劳务合同协议书
- 买卖合同模板(15篇)-买卖合同5篇
- 柴油打桩锤买卖合同7篇
- 租二手车合同协议书
- 烘焙团购合同协议书
- 石矿承包合同协议书
- 白酒经销合同协议书
- 物流快递合同协议书
- 警犬培训授课课件
- 2025年四川绵阳交通发展集团有限责任公司招聘笔试参考题库附带答案详解
- 成本控制在质量管理中的策略试题及答案
- 人工智能在药物研发中的辅助作用与潜力
- 作风建设学习教育查摆问题清单及整改措施
- 2025届河北省石家庄第一中学高三下学期二模地理试题及答案
- 2024年山东开放大学招聘考试真题
- PSP问题解决流程分析
- 语文-华大新高考联盟2025届高三3月教学质量测评试题+答案
- 劳务合同完整版(2025年版)
- 低空经济行业分析报告
评论
0/150
提交评论