J2ME為了實現(xiàn)對DataSource和Player有效管理,使用了工廠機(jī)制,由Manager來負(fù)責(zé)創(chuàng)建Player和DataSource。這樣的機(jī)制在JAVA中到處可見,如JDBC中的DriverManager,這里我就不對這種機(jī)制進(jìn)行介紹了。Manager不僅可以從DataSource中創(chuàng)建Player,而且還可以從本地或InputStream中創(chuàng)建Player。圖二展示了MMAPI整體結(jié)構(gòu)圖。

圖二:MMAPI整體結(jié)構(gòu)圖
三、 使用MMAPI
如果要播放一個單音一次,可使用:
Manager.playTone(note,duration,volume);
如果要播放序列音,則必須使用ToneControl。使用一個特別的定位器來創(chuàng)建一個 Player對象,獲得ToneControl,設(shè)置其命令序列,然后啟動播放器,如:

2.播放聲訊和MIDI
聲訊是指如WAV這樣的聲音格式,在這種格式中,數(shù)據(jù)是各種聲訊樣本的一個流,它代表著該聲訊每一秒鐘的片斷。MIDI則是一系列的命令,用作多樂器的某種"虛擬合成器"。
如要播放一段能夠通過HTTP訪問的聲音文件,請使用:
Player p = Manager.createPlayer("http://something.com/somefile.wav");
p.start();
如要播放一段已經(jīng)被置于MIDlet的JAR文件中的聲音文件,需要先了解其MIME類型(如,"audio/x-wav"),然后,使用:

3.播放視頻
播放視頻類似于音頻播放。然而,需要告訴視頻播放器在哪里顯示視頻信號,因此,需要從視頻播放器處得到一個"視頻控件",然后在Form或Canvas中顯示視頻內(nèi)容。下面展示一個從Canvas中顯示視頻的例子:
