Java Applet 透過 java.applet.AudioClip 介面提供聲音播放功能。本文詳細說明聲音檔案格式限制、核心 API 使用、循環播放與單次播放的實作差異,並提供完整可執行範例。
Java 僅支援 AU 格式**(Sun/NeXT 音訊格式),而 Windows 常用 WAV 格式。開發前需準備 WAV 轉 AU 工具(如 GoldWave、Cool Edit 等)。
| 方法 | 功能 |
|---|---|
play() | 播放一次聲音片段 |
loop() | 循環播放,直到呼叫 stop() |
stop() | 停止播放 |
import java.awt.*;
import java.applet.*;
public class SoundDemo extends Applet {
public void paint(Graphics g) {
// 取得聲音檔並建立 AudioClip 物件
AudioClip audioClip = getAudioClip(getCodeBase(), "Sample.AU");
g.drawString("Sound Demo!", 5, 15);
audioClip.loop(); // 循環播放
}
}
<HTML>
<TITLE>SoundDemo Applet</TITLE>
<APPLET CODE="SoundDemo.class" WIDTH=300 HEIGHT=200></APPLET>
</HTML>
mouseDown、actionPerformed 等事件處理器中呼叫 play(),實現互動音效。HashMap<String, AudioClip> 快取多個音效,避免重複載入。start()/stop() 生命週期方法,實現 Applet 啟動/停止時的背景音樂自動控制。paint 中重複建立 AudioClip,應在 init 中一次性載入並快取。掌握 AudioClip 操作,即可為 Java Applet 增添豐富的聽覺互動體驗。