使用J2ME MMAPI开发移动多媒体应用技术
2007/09/14
一、 引言图一:Data Source工作过程
javax.microedition.media.protocol.DataSource提供了MMAPI的Data Source的支持。
2、 处理媒体数据内容的过程
处理媒体数据内容的过程通常需要对媒体数据进行解释和解码,并且还需要认别该媒体的输出设置的类型,如是音频设置或者视频设置。举个例子,当DataSource从某媒体数据源上获取一MP3媒体数据,并将其传送给处理媒体数据内容过程,此过程首先对这个MP3媒体数据进行解析和解码,同时检测该MP3媒体为音频数据,打开装置的音频设备,将解析和解码后的媒体数据直接传送到装置的音频设备缓冲中,由该音频设备根据缓冲区中的数据内容产生音频信号。
MMAPI使用Player来处理媒体数据内容。一个Player是javax.microedition.media.Player接口的一个实现实例,它从Data
Source中读取媒体数据、解析和解码数据以及识别媒体输出设备和传送媒体数据到输出设备等。Player提供了一套方法去控制媒体的重放和同步。
MMAPI还提供了一个或多个Controls来调整player的行为,可以在player从媒体转换数据的时候从一个player实例取得并且使用Controls。我们可以通过Player中提供的一些特殊的Controls访问一些特殊的媒体类型。Controls由javax.microedition.media.Control接口实现。
3、 Manager
J2ME为了实现对DataSource和Player有效管理,使用了工厂机制,由Manager来负责创建Player和DataSource。这样的机制在JAVA中到处可见,如JDBC中的DriverManager,这里我就不对这种机制进行介绍了。Manager不仅可以从DataSource中创建Player,而且还可以从本地或InputStream中创建Player。图二展示了MMAPI整体结构图。
图二:MMAPI整体结构图
三、 使用MMAPI
MMAPI提供的类和接口都在javax.microedition.media中,在程序中使用MMAPI时,首先应该引用这些包,否则程序无法编译。
每个MMAPI程序都需要创建一个Player对象,前面我们已经介绍过,MMAPI使用Manager的CreatePlayer函数来创建Player对象,该函数有三个版本,其格式如下:
图三:状态转换图
四、 播放常见媒体的方法
1.播放单音与序列音
如果要播放一个单音一次,可使用:
Manager.playTone(note,duration,volume);
如果要播放序列音,则必须使用ToneControl。使用一个特别的定位器来创建一个 Player对象,获得ToneControl,设置其命令序列,然后启动播放器,如:
赛迪网 中国信息化(industry.ccidnet.com)
移动应用领域等待挖掘的金矿 2007-09-13 |
电信增值产业升级在即 2007-09-12 |
手机广告:即将被开掘的金矿 2007-09-11 |
Tom退市是否会引起SP退市连锁反应 2007-09-11 |
飞信“飞”往何处? 2007-09-10 |