J2ME为了实现对DataSource和Player有效管理,使用了工厂机制,由Manager来负责创建Player和DataSource。这样的机制在JAVA中到处可见,如JDBC中的DriverManager,这里我就不对这种机制进行介绍了。Manager不仅可以从DataSource中创建Player,而且还可以从本地或InputStream中创建Player。图二展示了MMAPI整体结构图。

图二:MMAPI整体结构图
三、 使用MMAPI
如果要播放一个单音一次,可使用:
Manager.playTone(note,duration,volume);
如果要播放序列音,则必须使用ToneControl。使用一个特别的定位器来创建一个 Player对象,获得ToneControl,设置其命令序列,然后启动播放器,如:

2.播放声讯和MIDI
声讯是指如WAV这样的声音格式,在这种格式中,数据是各种声讯样本的一个流,它代表着该声讯每一秒钟的片断。MIDI则是一系列的命令,用作多乐器的某种"虚拟合成器"。
如要播放一段能够通过HTTP访问的声音文件,请使用:
Player p = Manager.createPlayer("http://something.com/somefile.wav");
p.start();
如要播放一段已经被置于MIDlet的JAR文件中的声音文件,需要先了解其MIME类型(如,"audio/x-wav"),然后,使用:

3.播放视频
播放视频类似于音频播放。然而,需要告诉视频播放器在哪里显示视频信号,因此,需要从视频播放器处得到一个"视频控件",然后在Form或Canvas中显示视频内容。下面展示一个从Canvas中显示视频的例子:
