Java Applet 可透過 java.applet.AudioClip 介面播放聲音。本例建立一個包含「播放」、「循環」、「停止」三個按鈕的 Applet,點擊按鈕控制 MIDI 檔案的播放行為。
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
/**
* Title: Applet 播放聲音文件
* Description: 使用 AudioClip 類加載聲音文件,並當鼠標點擊後開始播放
* Copyright: Copyright (c) 2003
* Filename: PlayAudio.java
* @version 1.0
*/
public class PlayAudio extends Applet implements ActionListener {
AudioClip audio;
Button btExit, btOpen, btPlay, btLoop, btStop;
/**
* 方法說明:初始化 Applet
*/
public void init() {
// 載入聲音文件
audio = getAudioClip(getDocumentBase(), "img/1.mid");
// 建構按鈕
setLayout(new FlowLayout());
btPlay = new Button("Play");
btPlay.addActionListener(this);
btLoop = new Button("Loop");
btLoop.addActionListener(this);
btStop = new Button("Stop");
btStop.addActionListener(this);
// 將按鈕添加到 Applet 中
add(btPlay);
add(btLoop);
add(btStop);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btPlay) {
play();
}
if (e.getSource() == btLoop) {
loop();
}
if (e.getSource() == btStop) {
stop();
}
}
/** 播放聲音 */
public void play() {
if (audio != null) stop();
audio.play();
}
/** 循環播放聲音 */
public void loop() {
if (audio != null)
audio.loop();
}
/** 停止播放聲音 */
public void stop() {
if (audio != null)
audio.stop();
}
}
說明:
getAudioClip(URL, String) 從相對於文檔基底的路徑載入聲音。AudioClip 提供 play()、loop()、stop() 三個方法控制播放。ActionListener 分派處理。