Mobile Media API (MMAPI, JSR-135) 是 MIDP 1.0 選配包、MIDP 2.0 核心包。支援格式視裝置而定,常見有 WAV、MIDI、AMR、MP3(部分高階機)。本文以最通用的 JAR 內嵌 WAV 播放 為例。
InputStream is = getClass().getResourceAsStream("/sound.wav");Player player = Manager.createPlayer(is, "audio/x-wav");player.start();package sound;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import java.io.*;
public class SoundMIDlet extends MIDlet {
private Player player;
public SoundMIDlet() {
try {
InputStream is = getClass().getResourceAsStream("/Autorun.wav");
player = Manager.createPlayer(is, "audio/x-wav");
player.prefetch(); // 預載緩衝,降低 start() 延遲
} catch (Exception e) {
e.printStackTrace();
}
}
public void startApp() {
if (player != null) {
try { player.start(); }
catch (MediaException e) { e.printStackTrace(); }
}
}
public void pauseApp() {
if (player != null) player.stop(); // 釋放音訊資源
}
public void destroyApp(boolean unconditional) {
if (player != null) { player.close(); player = null; }
}
}
player.setLoopCount(3); 或 Player.LOOP_CONTINUOUSLY。VolumeControl vc = (VolumeControl)player.getControl("VolumeControl"); vc.setLevel(50);PlayerListener 處理 END_OF_MEDIA 事件實現自動切換曲目。| 平台 | 支援格式 | 備註 |
|---|---|---|
| Nokia S40/S60 | WAV, MIDI, AMR, MP3 (S60 3rd+) | WAV 採樣率建議 ≤ 22.05kHz |
| Sony Ericsson | WAV, MIDI, AMR, MP3 | 部分舊機型僅支援 8kHz WAV |
| Moto EZX | MIDI, AMR | WAV 需轉 AMR |
| WTK 模擬器 | 所有 Java Sound 支援格式 | 真機測試不可省略 |