`
mmdev
  • 浏览: 12950824 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android之MediaPlayer播放一般音频与SoundPool播放短促的音效

 
阅读更多
【1】使用MediaPlayer实现一般的音频播放
  • MediaPlayer播放通常的音频文件

  • 程序示例:

【2】使用SoundPool实现短促的音效

Android开发中我们经常使用MediaPlayer来播放音频文件,但是MediaPlayer存在一些不足,例如:资源占用量较高、延迟时间较长、不支持多个音频同时播放等。这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想,例如在对时间精准度要求相对较高的游戏开发中。

在游戏开发中我们经常需要播放一些游戏音效(比如:子弹爆炸,物体撞击等),这些音效的共同特点是短促、密集、延迟程度小。在这样的场景下,我们可以使用SoundPool代替MediaPlayer来播放这些音效。

SoundPoolandroid.media.SoundPool),顾名思义是声音池的意思,主要用于播放一些较短的声音片段,支持从程序的资源或文件系统加载。与MediaPlayer相比,SoundPool的优势在于CPU资源占用量低和反应延迟小。另外,SoundPool还支持自行设置声音的品质、音量、播放比率等参数,支持通过ID对多个音频流进行管理。

  • SoundPool存在的缺陷

  1.SoundPool最大只能申请1M的内存空间,这就意味着我们只能用一些很短的声音片段,而不是用它来播放歌曲或者做游戏背景音乐。

  2.SoundPool提供了pausestop方法,但这些方法建议最好不要轻易使用,因为有些时候它们可能会使你的程序莫名其妙的终止。建议使用这两个方法的时候尽可能多做测试工作,还有些朋友反映它们不会立即中止播放声音,而是把缓冲区里的数据播放完才会停下来,也许会多播放一秒钟。

  3.SoundPool的效率问题。其实SoundPool的效率在这些播放类中算是很好的了,但是有的朋友在G1中测试它还是有100ms左右的延迟,这可能会影响用户体验。也许这不能管SoundPool本身,因为到了性能比较好的Droid中这个延迟就可以让人接受了。

  在现阶段SoundPool有这些缺陷,但也有着它不可替代的优点,基于这些我们建议大在如下情况中多使用SoundPool1.应用程序中的声效(按键提示音,消息等)2.游戏中密集而短暂的声音(如多个飞船同时爆炸)

  • SoundPool使用方法

开发步骤:

1>往项目的res/raw目录中放入音效文件。

2>新建SoundPool对象,然后调用SoundPool.load()加载音效,调用SoundPool.play()方法播放指定音效文件。

分享到:
评论

相关推荐

    android安卓app音频播放方式 MediaPlayer与SoundPool的区别.zip

    android安卓app音频播放方式 MediaPlayer与SoundPool的区别.zip

    android背景音乐音效,使用MediaPlayer、SoundPool实现

    android背景音乐、背景音效实例,其中大音频音乐播放使用MediaPlayer实现,小音频音效播放使用SoundPool实现

    android中音频和视频的播放

    简单介绍了android中音频和视频的播放:MediaPlayer媒体播放器、SoundPool音效池、VideoView控件

    android使用SoundPool播放音效的方法

    在Android开发中我们经常使用MediaPlayer来播放音频文件,但是MediaPlayer存在一些不足,例如:资源占用量较高、延迟时间较长、不支持多个音频同时播放等。这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想...

    Android的音频与视频应用程序设计PPT

    (1)熟悉Android中播放声音的主要类SoundPool和MediaPlayer (2)熟悉Android中播放视频的主要类VideoView和SurfaceView (3)学会使用SoundPool类播放音频 (4)学会使用MediaPlayer类播放本地音频和网络音频 (5...

    Android多媒体应用使用SoundPool播放音频

    由于MediaPlayer占用资源较多,且不支持同时播放多个音频,所以Android还提供了另一个播放音频的类—–SoundPool。SoundPool即音频池,可以同时播放多个短小的音频,而且占用的资源较少。SoundPool适合在应用程序中...

    Android使用SoundPool实现播放音频

    最近做一个播放音频的小功能,使用毛坯界面简单记录下(点击上边的ImageButton播放,下边的ImageView请无视) activity_picture.xml页面: <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:...

    Android SoundPool实现简短小音效

    我们之前有用过MediaPlayer进行播放音频文件,但是当我们的应用程序需要经常的播放密集、短促的音效时,调用MediaPlayer则会占用系统的大量资源,且延时时间较长,不支持多个音频同时播放。这种简单的音乐的播放就...

    Android编程实现使用SoundPool播放音乐的方法

    此时我们可以用SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放 SoundPool主要用于播放一些较短的声音片段,优势在于CPU资源...

    android中的多媒体应用-音频和视频的播放

    android中多媒体应用:MediaPlayer 媒体播放器、SoundPool音效池、控件VedioView ,设置媒体控制器播放视频。音频及视频的录制。

    android实现小音频频繁播放

    android中多媒体文件(音乐和视频)的播放是用MediaPlayer方式是大家比较熟悉的,但是现在要来说一下另外一种音乐文件播放的方式SoundPool,相比较而言,用MediaPlayer来播放音乐的话,占用的系统资源是很多的,加载...

    android音频播放器代码

    一个很能说明音频播放原理的例子,其中包括使用MediaPlayer和SoundPool两种播放模式。 SoundPool适合短促但对反应速度要求较高的情况(如游戏中的爆炸声),而MediaPlayer 则适合对时间要求不高的情况。

    安卓视音频播放测试工程

    安卓开发中视音频播放的测试工程,其中使用了videoview播放视频,mediaplayer 和 soundpool两种方式播放音频,注意需要在sdcard中有test.mp4才能播放视频,如果是其他的视频文件,请自行改变工程文件的路径名

    Android音乐、音效架包(可以简化游戏或者音乐播放器的开发)

    Android音乐、音效架包(可以简化游戏或者音乐播放器的开发) 有两个大类:SoundPool MediaPlayer,只需调用架包中的方法就可以完成音乐音效的播放

    Android中SoundPool的使用步骤实例

    大家知道MediaPlayer占用的资源比较多,且不可以同时支持播放多个音频,所以我们有一种叫做SoundPool,比如我们常见的按键音或者是手机提示音,还比如我们在游戏的开发中会有大量的音效效果等,下边介绍一下她的用法...

    Android开发与应用——张荣,原书配套课件

    9.1 音频与视频的播放 9.1.1 MediaPlayer 9.1.2 SoundPool 9.1.3 VideoView 9.1.4 SurfaceView 9.2 摄像头的使用 9.2.1 摄像头意图Intent 9.2.2 Camera类 9.3 小结 练习 实验一 Android开发环境...

    疯狂Android讲义(第2版)源代码 第10章~第13章

    11.1、音频和视频的播放:MediaPlayer; SoundPool; VideoView; 11.2、使用MediaRecorder录制音频: 11.3、控制摄像头拍照:Camera; 第12章、OpenGL与3D应用开发 12.2、OpenGL ES基础: 12.3、绘制2D图形: ...

    疯狂Android讲义源码

     11.1.2 使用SoundPool播放音效 432  11.1.3 使用VideoView播放视频 435  11.1.4 使用MediaPlayer和  SurfaceView播放视频 436  11.2 使用MediaRecorder录制  音频 439  11.3 控制摄像头拍照 442  11.3.1 ...

    Android自定义音乐播放器的代码例子

    Android自定义音乐播放器的代码例子。支持展示音乐列表、滚动歌词,以及控制栏操作,另附演示用的一剪梅歌曲与歌词...另外演示了MediaRecorder/MediaPlayer组合、AudioRecord/AudioTrack,以及SoundPool对音频的处理。

Global site tag (gtag.js) - Google Analytics