JavaApplet實現聲音和圖像的協調
在有些情況下,可能需要在發生某事件時伴之以聲音,尢其是在Applet 中裝載圖像的同時播放聲音,這樣將大大地豐富Applet的內容。協調使用圖像的聲音是十分重要的。
聲音和圖像的協調(Appletl.java)
該Applet的聲音處理非常簡單。它首先創建一個AudioClip對象并用getAudioClip把聲音文件賦予該對象,然后用AudioClip類的play方法播放聲音。該Applet使用Random對象產生隨機數。它首先根據隨機數確定顏色;然后在paint內根據隨機數確定畫圓還是畫方。Random類的nexsInt函數返回一個隨機整數(int型)。該Applet把隨機數轉換為一個0'4之間的值(在run函數內)和一個0'1之間的值(在paint函數內)。
需把如下的HTML語句放入Appletl.HTML文件,為運行該Appletl做準備。
編譯并運行該Appletl,屏幕上將顯示出一個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> |
編譯并運行該Appletl,屏幕上將顯示出一個Applet窗口,窗口中不