Java經常使用的一些多媒體文件根本操作辦法簡介。本站提示廣大學習愛好者:(Java經常使用的一些多媒體文件根本操作辦法簡介)文章只能為提供參考,不一定能成為您想要的結果。以下是Java經常使用的一些多媒體文件根本操作辦法簡介正文
播放幻燈片和動畫
用實例解釋播放幻燈片和動畫的辦法。
【例】小運用法式先將幻燈片讀入數組在存儲,單擊鼠標變換幻燈片,逐張顯示。
import java.applet.*import java.awt.*; import java.awt.event.*; public class Example7_7 extends Applet implements MouseListener{ final int number = 50; //假定幻燈片有50張 int count = 0; Image[] card = new Image[number]; public void init(){ addMouseListener(this); for (int i = 0; i < number; i++){ card[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void paint(Graphics g){ if ((card[count]) != null) g.drawImage(card[count], 10, 10, card[count].getWidth(this),card[count].getHeitht(this), this); } public void mousePressed(MouseEvent e){ count = (count + 1) % number; //輪回逐張顯示 repaint(); } public void mouseRelease(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(Mouse Event e){} public void mouseClicked(MouseEvent e){} }
【例】小運用法式解釋播放動畫的辦法,請求播放的圖片和小法式放在雷同的目次中,法式經由過程疾速顯示一組圖片形成顯示動畫的後果。小運用法式應用線程掌握動繪圖片的逐顯示。
import java.applet.*; import java.awt.*; import java.awt.event.*; public class Example7_8 extends Applet implements Runnable{ final int number = 50; int count = 0; Thread mythread; Image[] pic = new Image[number]; public void init(){ setSize(300, 200); for (int i = 0; i <= number; i++){ //載入動繪圖片 pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void start(){ mythread = new Thread(this); //創立一個線程 mythread.start(); //啟動線程履行 } public void stop(){ mythread = null; } public void run(){ //線程的履行代碼 while (true){ repaint(); count = (count + 1) % number; //轉變顯示的圖片號 try{ mhythread.sleep(200); } catch (InterruptedExeception e){} } } public void paint(Graphics g){ if ((pic[count] != null) g.drawImage(pic[count], 10, 10, pic[count].getwidth(this), pic[count].getHeight(this), this); } }
播放聲響
Java說話老依據地的音頻格局有多種:au、aiff、wav、midi、rfm等。小法式要播放音頻文件,可以使用類AudioClip,該類在java.applet.AudioClip類庫中界說。小法式先創立AudioClip對象,並用getAudioClip()辦法為其初始化。代碼情勢以下:
AudioClip audioClip = getAudioClip(getCodeBase(),”myAudioClipFile.au”);
假如要從網上取得音頻文件,可用辦法getAudioClip(URL url, String name),依據url地址及音頻文件name取得可播放的音頻對象。
掌握聲響的播放有3個辦法:play()播放聲響,loop()輪回播放和stop()停滯播放。
【例】能播放聲響的小運用法式。
import java.applet.*; import java.awt.*; import java.awt.event.*; public class Example7_9 extends Applet implements ActionListener{ AudioClip clip; //聲明一個音頻對象 Button buttonPlay, buttonLoop, buttonStop; public void init(){ clip = getAudioClip(getCodeBase(), "2.wav"); //依據法式地點地址處聲響文件2.wav創立音頻對象, //Applet類的getCodeBase()辦法可以取得小法式地點的html頁面的URL地址。 buttonPlay = new Button("開端播放"); buttonLoop = new Button("輪回播放"); buttonStop = new Button("停滯播放"); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); } public void stop(){ clip.stop(); //當分開此頁面時停滯播放 } public void actionPerformed(ActionEvent e){ if (e.getSource() == buttonPlay){ clip.play(); } else if (e.getSource() == buttonLoob){ clip.loop(); } else if (e.getSource() == buttonStop){ clip.stop(); } } }
【例】假如聲響文件較年夜或收集速度慢會影響小法式的初始化任務。這可用多線程技巧處理。在一個級別較低的線程中完成音頻對象的創立,即由後台載入聲響文件,前台播放。
import java.applet.*; import java.awt.*; import java.awt.event.*; public class Hanoi extends applet implements Runnable, ActionListener{ AudioClip clip; //聲明一個音頻對象 textField text; Thread thread; Button buttonPlay, buttonLoop, buttonStop; public void init(){ thread = new Thread(this); //創立新線程 thread .setPriority(Thread.MIN_PRIORITY); buttonPlay = new Button("開端播放"); buttonLoop = new Button( "輪回播放"); buttonStop = new Button("停滯播放"); text = new textField(12); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); add(text); } public void start(){ thread.start(); } public void stop(){ clip.stop(); } public void actionPerformed(ActionEvent e){ if (e.getSource() == buttonPlay(){ clip.play(); } else if (e.getSource() == buttonLoop(){ clip.loop(); } else if (e.getSource() == buttonStop(){ clip.stop(); } } public void run(){ //在線程thread 中創立音頻對象 clip = getAudioclip(getCodeBase(), "2.wav"); text.setText("請稍等"); if(clip ! = null){ buttonPlay.setBackground(Color.red); buttonLoop.setBackground(Color.green); text.setText("您可以播放了"); } //取得音頻對象後告訴可以播放 } }