Java Applet實現聲音和圖像的協調 – JAVA編程語言程序開發技術文章

  [文章導讀]在有些情況下,可能需要在發生某事件時伴之以聲音,尢其是在Applet 中裝載圖像的同時播放聲音,這樣將大大地豐富Applet的內容
在有些情況下,可能需要在發生某事件時伴之以聲音,尢其是在Applet 中裝載圖像的同時播放聲音,這樣將大大地豐富Applet的內容。協調使用圖像的聲音是十分重要的。

  聲音和圖像的協調(Appletl.java)

//源程序清單
import java.awt.*;
import java.applet.*;
import java.util.*;
public class Appletl extends Applet implements Runnable
{
  AudioClip audioClip;
  Thread ShapeThread=null;
  Random RandomNumber=new Random( );
  Color ImageColor;
  public void init( )
  {
   audioClip=getAudioClip(getCodeBase( ), “Sample.AU”);// 創建一個AudioClip對象
  }
  public void start( )
  {
   if (ShapeThread= =null)
   {
    ShapeThread=new Thread(this);
    ShapeThread.start( );
   }
  }
  public void run()
  {
   while (true)
   {
    switch (RandomNumber.nextlnt(5)) { //把隨機數轉換為0~4之間的值
    case 0: ImageColor=Color.black;
        break;
    case 1: ImageColor=Color.blue;
        break;
    case 2: ImageColor=Color.cyan;
        break;
    case3: ImageColor=Color.magenta;
        break;
    case4: ImageColor=Color.orange;
        break;
    default: ImageColor=Color.red;
   }
   try
   {
    ShapeThread.sleep(300); //線程睡眠
   }
   catch(InterruptedException e)
   {
    //忽略異常
    repaint();
   }
  }
  public void paint(Graphics g)
  {
   g.setColor(ImageColor);
   audioClip.play(); //播放聲音
   switch(RandomNumber.nextlnt(2)) //獲取隨機數與2整除的餘數
   {
    case0:g.fillRect(25,25,200,200); //添充一個矩形
       break;
    default:g.fillOval(25,25,200,200); //添充一個橢圓
       break;
   }
  }
}

  該Applet的聲音處理非常簡單。它首先創建一個AudioClip對象並用getAudioClip把聲音文件賦予該對象,然後用AudioClip類的play方法播放聲音。該Applet使用Random對象產生隨機數。它首先根據隨機數確定顏色;然後在paint內根據隨機數確定畫圓還是畫方。Random類的nexsInt函數返回一個隨機整數(int型)。該Applet把隨機數轉換為一個0~4之間的值(在run函數內)和一個0~1之間的值(在paint函數內)。
需把如下的HTML語句放入Appletl.HTML文件,為運行該Appletl做準備。

<HTML>
<TITLE>Applet</TITLE>
<APPLET CODE=”Appletl.class” WIDTH=300 HEIGHT=300>
</APPLET>
</HTML>

發佈留言