Java 主流支援 .au 格式聲音檔(亦支援 .wav、.mid)。Applet 環境提供 AudioClip 類別處理聲音。
import java.applet.*;
public class SoundApplet extends Applet {
public static void main(String args[]) {
AudioClip ac = getAudioClip(getCodeBase(), "sloop.au");
ac.play();
// ac.loop(); // 循環播放
// ac.stop(); // 停止播放
}
}
getCodeBase() 回傳 Applet 本身 URL,getDocumentBase() 回傳包含 Applet 的網頁 URL。可搭配按鈕控制播放/停止。
應用程式不支援 AudioClip,Sun 提供 sun.audio 套件解決(亦包含 Java2D、Tools 等實用技術)。
import sun.audio.*;
import java.io.*;
public class SoundPlayer {
public static void main(String args[]) {
try {
FileInputStream fis = new FileInputStream("sloop.au");
AudioStream as = new AudioStream(fis);
AudioPlayer.player.start(as);
} catch (Exception e) {
e.printStackTrace();
}
}
}
註:範例未含停止方法,僅示範核心播放流程,程式碼可直接執行。
javax.sound 套件提供更強大的音訊支援,Sun 官網 (Java SE) 提供大量範例程式碼下載,適合進階音訊應用開發。