网站大量收购闲置独家精品文档,联系QQ:2885784924

第六章 Android 多媒体与传感器开发.docx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 Android 多媒体与传感器开发

第六章 Android 多媒体与传感器开发6.1 音频播放 Android提供了一个专门的android.media包来支持多媒体的应用操作。其中关于音频播放的两个类MediaPlayer和SoundPool就在该包当中。Android支持的音频格式有MP3、WAV 和3GP。有了多媒体支持的这些类,开发者就可以非常方便的在手机应用中添加音频播放。音频文件可以来源于Android应用程序的资源文件,也可以来源于外部存储器上的文件或者是网络当中的文件流。Android平台中关于音频的播放有两种方式一种是MediaPlayer另一种是SoundPool。两者的区别是MediaPlayer适合播放较长但对时间要求不高的音频,而SoundPool适合播放密集、短促的音效。MediaPlayer不支持多个音频同时播放。接下来就具体来看看这两种播放方式。6.1.1 MediaPlayer 如上图是Android API当中对MediaPlayer各种状态的一个图形解析。播放音频文件的第一步就应该是先来加载音频文件。MediaPlayer当中提供了如下表的静态方法来加载音频文件。static MediaPlayercreate(Context context, intresid) Convenience method to create a MediaPlayer for a given resource id.static MediaPlayercreate(Context context, Uriuri) Convenience method to create a MediaPlayer for a given Uri.第一个方法是通过制定的Uri来装载音频文件,比如音频文件来源自网络文件流的时候可以使用该方法加载。第二个方法是通过指定resid也就是资源ID,来加载对应的资源文件。上述两个方法都可以加载并返回创建的MediaPlayer对象。如果在代码编写的过程中,只需要有一个播放器而播放的资源文件需要有变更的时候,就不适宜用以上两种方法来加载资源了,可以通过如下表的方法来重新设置MediaPlayer的音频文件。void setDataSource(String path) Sets the data source (file-path or http/rtsp URL) to use.void setDataSource(FileDescriptorfd, long offset, long length) Sets the data source (FileDescriptor) to use.void setDataSource(FileDescriptorfd) Sets the data source (FileDescriptor) to use.void setDataSource(Context context, Uriuri) Sets the data source as a content Uri.第一个方法是通过指定路径来加载音频文件。第二三个方法都是通过fd文件加载。第四个方法是通过uri加载。有了MediaPlayer后就可以调用该类的方法来进行播放的控制了。播放控制的方法有如下。void start() 开始或者恢复播放。void stop() 停止播放。void setVolume(float leftVolume, float rightVolume) 设置音量,两个参数分别为左右声道音量。void setLooping(boolean looping) 设置是否循环播放。booleanisLooping()检查播放器是否循环播放。booleanisPlaying() 检查播放器是否正在播放。下面通过实例来了解MediaPlayer播放音频。创建一个名为TestMusic的项目。打开main.xml文件,添加四个Button,分别为播放音乐、暂停音乐、音量加大和音量减小。在res当中添加一个raw的文件夹,将音频文件放入该路径。在Activity类当中添加如下代码。6.1.2SoundPoolSoundPool用于播放一些简短的音效,它是使用池化的形式来管理音频文件的。SoundPool的反应延迟对于MediaPlayer来说要小,CPU资源的占用量也相对较低。另外SoundPool还支持用户自己设置声音的品质。SoundPool类只提供了一个构造方法来创建SoundPool对象。SoundPool(int maxStreams, intstreamType, intsrcQuality) 该方法的第一个参数是指该音频池最大容量,第二个参数是指音频的类型,第三个参数是指声音的品质

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档