MMAPI是JSR 135: Mobile Media API提供的一套规范的播放和录制音频或视频接口。
MMAPI框架:(from: developers.sun.com)
Manager类(javax.microedition.media.Manager),用于创建各种不同类型的Players,获得各种支持协议和内容格式,播放简单的曲调等。
Manager根据createPlayer函数的参数创建一个Data Source对象,由该对象完成对媒体数据的传输工作,并从数据中获取该媒体的数据内容类型,然后根据这个媒体数据类型创建相应的Player对象,如果Manager无法确定DataSource的内容类型,它将抛出一个MediaException异常:
获取手机支持的协议和媒体类型:
播放简单声调:
MMAPI使用Player来处理媒体数据内容。Player是javax.microedition.media.Player接口的实现实例,它从Data Source中读取媒体数据、解析和解码数据以及识别媒体输出设备和传送媒体数据到输出设备等。
Player提供了一套方法去控制媒体的重放和同步:
Player.start():重放媒体流。
Player.stop():停止媒体流。
Player.setMediaTime(long now):设置媒体时间。
Player.close():关闭媒体流并释放资源。
Player.getState():获取Player的当前状态:
详细重放控制:
播放RMS内存储的数据:
播放Jar文件中存储的媒体:
不同Player的同步:
MMAPI还提供了一个或多个Controls来调整player的行为,可以在player从媒体转换数据的时候从player实例取得并且使用Controls。我们可以通过Player中提供的一些特殊的Controls访问一些特殊的媒体类型。Controls由javax.microedition.media.Control接口实现。
实现MIDI重放控制:
视频重放功能实现:
产生单音序列:
语音捕获和录音功能的实现:
实现摄像功能: