版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识点:MMAPI简介MMAPI编程基础MMAPI编程基础实例本章导读:
MMAPI(MobileMediaAPI)是J2ME设备的多媒体编程API,本章重点介绍了如何利用J2ME来实现音频、视频的播放、采集等功能。J2ME移动软件程序设计12.1.1MMAPI简介12.1MMAPIMMAPI(MobileMediaAPI)是一个J2ME设备的多媒体性能规范。其目标是实现J2ME多媒体应用的通用性。包括视频和音频的播放、图像捕获和声音记录等。
J2ME移动软件程序设计12.1.2MMAPI中的重要成员MMAPI体系结构:包含三个主要成员。图12-1MMAPI体系结构J2ME移动软件程序设计MMAPI中的重要成员介绍Manager类:只有静态方法,各种应用不能创建它的实例。Manager为创建播放器、查询各种支持协议和内容类型提供了许多静态方法,还为播放一个单音提供了简单的方法。Player:Manager的createPlayer方法创建一个Player,并附加一个相关的DataSource以提供数据。Control接口:是用来实现各种Player可能拥有的控件,应用程序可以向Player查询以检查它支持哪些控件,然后调用这些控件实现相应的功能。
J2ME移动软件程序设计12.1.3MMAPI与MIDP2.0多媒体API的区别
MIDP的API分布在javax.microedition.media和javax.microedition.media.control两个包中;MMAPI包括上述两个包,另外还有tocol包。在MIDP和MMAPI的两个同名包中,存在许多同名的类,这些同名类的功能有差异。在javax.microedition.media.control包中,MMAPI提供了12个控制器,范围包括了对单音音调、音量、MIDI、节拍、视频和录制功能的控制器,而MIDP只支持简单的单音播放器。
J2ME移动软件程序设计12.1.4Player的生命周期
Player的生命周期由五个状态组成,分别是UNREALIZED、REALIZED、PREFETCHED、STARTED和CLOSED。图12-2Player的状态模型J2ME移动软件程序设计UNREALIZED:一开始利用Manager及媒体定位器取得Player的时候,Player即处于UNREALIZED状态。在这个状态下,尚未开始获取媒体的数据,只是产生与媒体类型对应的Player,供以后使用。REALIZED:当Player调用realize()方法后,Player就可以取得这个媒体的相关数据,如长度和媒体作者等,同时检查资料的正确性并进入REALIZED状态。PREFETCHED:调用prefetch()方法读取多媒体内容(串流媒体则不会做这个动作),并开启移动设备内对应的播放装置,同时进入PREFETCHED状态。STARTED:当Player调用start()方法后,开始播放多媒体内容,此时为STARTED状态。CLOSED:如果Player调用了close()方法,Player就会释放所有原先占用的资源,最后终止播放器。
J2ME移动软件程序设计12.1.5设备系统多媒体属性
设备的系统属性可以由System.getProperties()获得。与多媒体相关的系统属性包括microedition.media.versionsupports.mixingsupports.audio.capturesupports.video.capturesupports.recordingaudio.recordingvideo.recordingvideo.snapshot.encordingstreamable.contents
J2ME移动软件程序设计12.2.1获取Player(播放器)的方法12.2MMAPI编程基础
播放一段媒体资源之前需要通过Manager获取相应媒体资源的Player。InputStreamis=getClass().getResourceAsStream(“/sound.wav”);Playerplayer=Manager.createPlayer(is,“audio/x-wav”);player.start();如果资源位于Interenet上Playerplayer=Manager.createPlayer(“http://myH/sound.wav”);如果资源储存在本地记录库中RecordStorers=RecordStore.open(“media_rs”);byte[]recData=rs.getRecord(id);ByteArrayInputStreambis=newByteArrayInputStream(recData);Playerplayer=Manager.createPlayer(bis,“audio/x-wav”);
J2ME移动软件程序设计12.2.2媒体定位符
媒体定位符(MediaLocator)作为一个参数用于Manger类的createPlayer()方法媒体定位符一般是以URI的形式表现“capture://”设备[“?”参数],代表了录音、录像的媒体定位符的通用形式。“capture://radio”[“?”参数],用作收音机定位符。
J2ME移动软件程序设计12.2.3获取Control(控制器)方法
只要Player不是处于UNREALIZED和CLOSED状态,就可以从Player中获取相应媒体类型的Control。如果Player处于UNREALIZED和CLOSED状态,获取Control时会抛出IllegalStateExcetion异常。
J2ME移动软件程序设计12.3MMAPI编程示例
使用单音(Tone)单音是每一只手机最基本的音效能力,MIDP2.0规定支援MIDP2.0的手机都必须提供单音播放能力。Manager类提供一种简单播放单音的方法:playTone(intnote,intduration,intvolume)参数note代表音符,用整数表示,它的取值范围是0~127。参数duration代表播放时间,单位是毫秒。参数volume代表音量,取值范围从0~100,其中0为无声,100为最大值。使用单音实例:PlayToneMIDlet.javaJ2ME移动软件程序设计单音序列使用javax.microedition.mide
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季大学新生军训 军事拓展训练方案教学方案
- 2026年绿色食品有机农业创新报告及全球食品安全行业发展趋势报告
- 2027年江西省萍乡市高职单招职业适应性测试考试模拟试卷带答案详解(夺分金卷)
- 2027年凤岭职业学院高职单招职业技能考试题库附答案详解(夺分金卷)
- 2025年济南现代工程学院高职单招职业适应性测试考试题库及答案详解【夺冠】
- 2027年滇池康养学院高职单招职业适应性测试考试题库(各地真题)附答案详解
- 2025年齐峰职业学院单招职业技能考试模拟试卷含答案详解(综合卷)
- 交易监测算法合规性研究
- 2027年湖北省襄樊市高职单招职业技能考试模拟试卷附答案详解【典型题】
- 2026年吉林城市职业技术学院高职单招职业技能考试题库【巩固】附答案详解
- 老年高血压特点及临床诊治流程专家共识(2024)解读
- 服装厂生产车间员工劳务合同书(34篇)
- 会计从业会计基础
- 2024办公桌椅购销合同范本
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- 装配工人培训产品装配与质量控制
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
- 2023滚动轴承汽车变速箱用滚子轴承
- 建筑工地三级安全教育卡
- JJG 176-2022声校准器
- GB/T 3906-20203.6 kV~40.5 kV交流金属封闭开关设备和控制设备
评论
0/150
提交评论