首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

使用 J2ME MMAPI 開發移動多媒體應用(二):Player 控制、狀態機與常見媒體播放實例

     編輯:J2ME

Player 常用控制方法

  • start() 重放、stop() 停止、setMediaTime() 定位、close() 釋放資源、getState() 取得狀態。

Player 生命週期狀態機

四大狀態:

  1. UNREALIZED:剛建立,未設定資料源。
  2. REALIZED:已設定資料源(如正在下載/解析、或 HTTP 請求已發送、DataSource 就緒)。
  3. PREFETCHED:已讀取足夠資料,開始解碼運算。
  4. STARTED:運算完成,正在播放。

調用控制方法會觸發狀態轉換,需留意當前狀態。圖3 展示狀態轉換圖。

Player狀態轉換圖

圖3:Player 狀態轉換圖

四、常見媒體播放代碼範例

1. 單音與序列音

單音:Manager.playTone(note, duration, volume)。序列音:建立 Manager.TONE_DEVICE_LOCATOR Player,取得 ToneControl,setSequence() 設定音序(音符+時值),start() 播放。

2. 聲訊 (WAV) 與 MIDI

  • HTTP 遠端:Manager.createPlayer("https://.../file.wav").start()
  • JAR 內資源:需知 MIME 類型(如 audio/x-wav),getResourceAsStream() 取得流,createPlayer(stream, type)。
  • RMS 存儲:RecordStore 讀取位元組陣列,包裝 ByteArrayInputStream 再建 Player。

3. 視頻播放

需取得 VideoControl 設定顯示模式與可見區域。Canvas 顯示範例:

InputStream is = getClass().getResourceAsStream("/somefile.avi");
Player p = Manager.createPlayer(is, "video/avi");
p.realize();
VideoControl vc = (VideoControl) p.getControl("VideoControl");
if (vc != null) {
    vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, canvas);
    vc.setVisible(true);
    p.start();
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved