《手机音效开发》PPT课件

《手机音效开发》PPT课件

ID:38950279

大小:288.81 KB

页数:29页

时间:2019-06-22

《手机音效开发》PPT课件_第1页
《手机音效开发》PPT课件_第2页
《手机音效开发》PPT课件_第3页
《手机音效开发》PPT课件_第4页
《手机音效开发》PPT课件_第5页
资源描述:

《《手机音效开发》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、J2ME编程入门之手机音效开发现在能播放音乐的手机已经是很常见的了,同时手机游戏也需要声音来增加动感效果,所以手机音效也成为了开发热点。J2ME针对多种媒体格式,提供了一套播放接口,那就是:MMAPI(MobileMediaAPI)。1MMAPI体系结构现在多媒体的格式很多,要顺利地播放这些不同格式的音乐,一种比较好的方式就是把这些不同格式的数据都转换为统一的格式,然后统一使用一个播放器接口类来播放。在MMAPI中,首先从数据源(如一个文件、一个捕获装置或一个流式服务)上读取媒体数据内容后,然后传输给专门的处理程序进行处理。处理过程主要是由DataSource类

2、和Player类完成。DataSource类的作用就是读取和转换多媒体数据,Player类的作用就是播放这类数据。然后提供一系列的播放、暂停、停止等播放器相关功能,DataSource类和Player类的工作过程如图所示。数据流图2Player接口要使用MMAPI进行音效开发,首先需要导入相关的开发包,例如:importjavax.microedition.media.*使用Player接口来播放音频的步骤1、通过Manager.createPlayer()方法创建一个播放器2、调用prefetch()方法开始获取音频并减少滞后3、调用start()方法开始回放

3、4、如果需要的话,调用stop()方法停止回放5、调用close()方法关闭播放器1.UNREALIZED状态2.REALIZED状态3.PREFETCHED状态4.STARTED状态5.CLOSED状态播放器的五种状态状态之间的转换1、播放器开始处于UNREALIZED状态;2、当播放器具备了开始获取媒体资源所需的一切的时候,播放器进入REALIZED状态;3、当获取到媒体资源并准备回放的时候,播放器进入了PREFETCHED状态;4、当回放开始的时候,播放器进入了STARTED状态;状态之间的转换5、当回放结束的时候,播放器返回到PREFETCHED状态;6

4、、当播放器关闭的时候,播放器进入CLOSED状态。状态转换图player接口中的一些重要方法realize()—实现没有获取媒体资源的播放器(通常不需要显式调用);prefetch()—获取媒体资源以便减小回放滞后(调用它来首次初始化播放器);getState()—获取播放器状态;setLoopCount()—设置播放声音的循环次数(必须在调用start()之前调用);start()—开始播放声音;stop()—停止播放声音;getDuration()—获取声音持续时间(单位:毫秒);getMediaTime()—获取当前的媒体时间(单位:毫秒);setMedi

5、aTime()—设置当前的媒体时间(单位:毫秒);close()—关闭播放器。3在手机游戏中播放声波声音在手机中播放声波声音并不难,你只需要知道声音来自于哪里即可。更具体地说,声波文件是存储在一个MIDlet的JAR文件中,还是通过网络可以访问到。显然,通过MIDlet的JAR文件来访问一个声波文件要高效很多,因此,这也是大多数手机游戏所采用的方式。从一个JAR文件播放声波要通过一个MIDlet的JAR文件访问声波声音,你必须先确保在构建这个MIdlet的时候声波文件添加到了JAR文件中。只要你把声波文件放置到主MIDlet目录下的res文件夹中,当你在kToo

6、lbar开发工具中编译MIDlet的时候,声波文件就会自动地包含到JAR文件中。之后简单的几行代码就可以播放这个声音了。示例try{PlayergamePlayer;InputStreamis=getClass().getResourceAsStream("game.wav");//创建一个基于声波文件的输入流,作为创建播放器的基础gamePlayer=Manager.createPlayer(is,"audio/X-wav");gamePlayer.prefetch();gamePlayer.start();}catch(IOExceptionioe){}ca

7、tch(MediaExceptione){}当声波文件的名字被传递给getResourceAsStream()方法的时候,这个方法在getClass()方法所访问的对象的运行时调用。尽管获得输入流需要一点技巧,但是当你得到以后,你只需要把它和声波声音的MIME类型一起传递给Manager.createPlayer()方法就可以了。为了确保声音已经准备好以最小的滞后播放,我们需要调用prefetch()方法。最后,调用start()方法来开始播放声波声音。由于这些方法中都可能抛出异常,所有的这些调用都要包含在异常处理子句中。当需要重复播放声音时,可以选择多次调用s

8、tart()方法。可是,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。