使用J2ME MMAPI開發(fā)移動多媒體應用技術
2007/09/14
一、 引言圖一:Data Source工作過程
javax.microedition.media.protocol.DataSource提供了MMAPI的Data Source的支持。
2、 處理媒體數據內容的過程
處理媒體數據內容的過程通常需要對媒體數據進行解釋和解碼,并且還需要認別該媒體的輸出設置的類型,如是音頻設置或者視頻設置。舉個例子,當DataSource從某媒體數據源上獲取一MP3媒體數據,并將其傳送給處理媒體數據內容過程,此過程首先對這個MP3媒體數據進行解析和解碼,同時檢測該MP3媒體為音頻數據,打開裝置的音頻設備,將解析和解碼后的媒體數據直接傳送到裝置的音頻設備緩沖中,由該音頻設備根據緩沖區(qū)中的數據內容產生音頻信號。
MMAPI使用Player來處理媒體數據內容。一個Player是javax.microedition.media.Player接口的一個實現(xiàn)實例,它從Data
Source中讀取媒體數據、解析和解碼數據以及識別媒體輸出設備和傳送媒體數據到輸出設備等。Player提供了一套方法去控制媒體的重放和同步。
MMAPI還提供了一個或多個Controls來調整player的行為,可以在player從媒體轉換數據的時候從一個player實例取得并且使用Controls。我們可以通過Player中提供的一些特殊的Controls訪問一些特殊的媒體類型。Controls由javax.microedition.media.Control接口實現(xiàn)。
3、 Manager
J2ME為了實現(xiàn)對DataSource和Player有效管理,使用了工廠機制,由Manager來負責創(chuàng)建Player和DataSource。這樣的機制在JAVA中到處可見,如JDBC中的DriverManager,這里我就不對這種機制進行介紹了。Manager不僅可以從DataSource中創(chuàng)建Player,而且還可以從本地或InputStream中創(chuàng)建Player。圖二展示了MMAPI整體結構圖。
圖二:MMAPI整體結構圖
三、 使用MMAPI
MMAPI提供的類和接口都在javax.microedition.media中,在程序中使用MMAPI時,首先應該引用這些包,否則程序無法編譯。
每個MMAPI程序都需要創(chuàng)建一個Player對象,前面我們已經介紹過,MMAPI使用Manager的CreatePlayer函數來創(chuàng)建Player對象,該函數有三個版本,其格式如下:
圖三:狀態(tài)轉換圖
四、 播放常見媒體的方法
1.播放單音與序列音
如果要播放一個單音一次,可使用:
Manager.playTone(note,duration,volume);
如果要播放序列音,則必須使用ToneControl。使用一個特別的定位器來創(chuàng)建一個 Player對象,獲得ToneControl,設置其命令序列,然后啟動播放器,如:
賽迪網 中國信息化(industry.ccidnet.com)
移動應用領域等待挖掘的金礦 2007-09-13 |
電信增值產業(yè)升級在即 2007-09-12 |
手機廣告:即將被開掘的金礦 2007-09-11 |
Tom退市是否會引起SP退市連鎖反應 2007-09-11 |
飛信“飛”往何處? 2007-09-10 |