Android SoundPool

 SoundPool

SoundPool 主要用于播放一些较短的声音片段,与 MediaPlayer 相比, 
SoundPool 的优势在于 CPU 资源占用量低和反应延迟小。另外, 
SoundPool 还支持自行设置声音的品质、音量、 播放比率等参数。

SoundPool(int maxStreams, int streamType, int srcQuality) 
:第一个参数指定支持多少个声音;第二个参数指定声音类型:第三个参数指定声音品质。

使用 SoundPool 播放声音的步骤如下:

1)调用 SoundPool 的构造器创建 SoundPool 的对象。

2)调用 SoundPool 对象的 load() 方法从指定资源、文件中加载声音。最好使用 HashMap< Integer, Integer> 来管理所加载的声音。

3)调用 SoundPool 的 play 方法播放声音。

1.初始化对象
SoundPool soundPool;
HashMap<Integer, Integer> musicId = new HashMap<Integer, Integer>();

2.创建SoundPool对象添加声音文件
// 初始化 soundPool, 设置可容纳 12 个音频流,音频流的质量为 5 ,
soundPool = new SoundPool(12, 0, 5);
// 通过 load 方法加载指定音频流,并将返回的音频 ID 放入 musicId 中
musicId.put(1, soundPool.load(this, R.raw.if1, 1));
musicId.put(2, soundPool.load(this, R.raw.if2, 1));
musicId.put(3, soundPool.load(this, R.raw.if3, 1));

3.调用播放
/**
* SoundPool 提供的播放指定声音的方法:

* int play(int soundID, float leftVolume, float rightVolume, int
* priority, int loop, float rate) :该方法的第一个参数指定播放哪个声音; leftVolume 、
* rightVolume 指定左、右的音量: priority 指定播放声音的优先级,数值越大,优先级越高; loop
* 指定是否循环, 0 为不循环, -1 为循环; rate 指定播放的比率,数值可从 0.5 到 2 , 1 为正常比率。
*/
soundPool.play(musicId.get(1), 1, 1, 0, 0, 1);

注意 soundPool.play() 返回一个当前播放音乐的 int soundID 这个Id用于停止使用
如果 soundPool.stop(soundID);  soundPool.pause(soundID);

时间: 2024-09-20 05:32:01

Android SoundPool的相关文章

Android SoundPool播放声音的问题

问题描述 Android SoundPool播放声音的问题 5C //指定声音池的最大音频流数目为10,声音品质为5 pool=new SoundPool(10 AudioManager.STREAM_SYSTEM5); //载入音频流,返回在池中的id int resID = getResources().getIdentifier(""simple""raw"" ServiceForce.getAppName()); final int so

SoundPool在Android5.0版本不能播放音效

问题描述 SoundPool在Android5.0版本不能播放音效 在Android 4.1上运行APP,利用soundPool播放,有声音,但是在Android 5.0 上运行app,则没有声音,警告audiotrack AUDIO_OUTPUT_FLAG_FAST denied by client,这是为什么呢 解决方案 Android用SoundPool播放音效android SoundPool播放音效(一)android SoundPool 音效播放 解决方案二: 设备与你的androi

android如何短时间音效播放实现SoundPool

实现技术: android.media.SoundPool实现 (管理和播放应用程序的声音资源,直接加载到内存). 一.基础知识: 1. 创建一个SoundPool : 我们先看看SoundPool函数的定义,如下: [java] public SoundPool( int maxStream, // 同时播放的流的最大数量 int streamType,// 流的类型,一般为STREAM_MUSIC int srcQuality // 采样率转化质量,当前无效果,使用0作为默认值 ) publ

【Android开发】多媒体应用开发-使用SoundPool播放音频

由于MediaPlayer占用资源较多,且不支持同时播放多个音频,所以Android还提供了另一个播放音频的类-----SoundPool.SoundPool即音频池,可以同时播放多个短小的音频,而且占用的资源较少.SoundPool适合在应用程序中播放按键音或消息提示音等,在游戏中播放密集而短暂的声音,如多个飞机爆炸的声音等.使用SoundPool播放音频,首先需要创建SoundPool对象,然后加载所需要播放的音频,最后调用play()方法播放音频,下面进行详细介绍 1.创建SoundPoo

《Android游戏编程入门经典》——14.2节使用SoundPool播放音频

14.2 使用SoundPool播放音频Android游戏编程入门经典类android.media.SoundPool用于一次播放多个音频示例,因此使用它在游戏中播放音效. 注意: 忽略了资产文件扩展名.因此,不考虑扩展名,资产文件名必须是唯一的.无法在同一文件夹中保存sound1.mp3和sound1.ogg,因为两个文件都使用关键字sound1将文件添加到资源管理器中. 14.2.1 初始化SoundPool首先,我们将创建SoundPool变量: 通常,在程序的onCreate()事件方法

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

本文实例讲述了Android编程实现使用SoundPool播放音乐的方法.分享给大家供大家参考,具体如下: 如果应用程序要播放密集.短促的音效,这时还用MediaPlayer就显得不合适了.MediaPlayer存在如下缺点: 1.资源占用率较高,延迟时间较长 2.不支持多个音频同时播放 此时我们可以用SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放 SoundPool主要用于播放一些较短的声音

我的Android进阶之旅------&amp;gt;经典的大牛博客推荐(排名不分先后)!!

今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超博客 Android中文Wiki AndroidStudio-NDK开发-移动开发团队 谦虚的天下 - 博客园 gundumw100博客 - android进阶分类文章列表 - ITeye技术网站 CSDN博文精选:Android系列开发博客资源汇总 - CSDN.NET - CSDN资讯 Android笔记本--半年来的研究笔记,导航. - 思想实践地 - CSDN博客 [魏祝林]Android中级教程 - Androi

在Android中播放音频和视频

本文简介 媒体包提供了可管理各种媒体类型的类.这些类可提供用于执行音频和视频操作.除了基本操作之外,还可提供铃声管理.脸部识别以及音频路由控制.本文说明了音频和视频操作. 范围: 本文旨在针对希望简单了解Android编程的初学者而设计.本文将指导你逐步开发使用媒体(音频和视频)的应用程序.本文假定你已安装了可开发应用程序的Android和必要的工具,同时还假定你已熟悉Java或掌握面向对象的编程概念.如欲查询更多有关Android的详情,请参阅三星移动创新者园地(SMI)知识库网站.http:

android 音量调整

Android调整音量是通过AudioManager来进行控制的,他也是一个服务,通过这个manager可以控制音量的大小,静音,是否显示音量控制条,等等. 这个服务的使用步骤: (1)获取AudioManager服务 (2)设置要控制的控制的音频流 (3)通过publicvoidadjustStreamVolume (intstreamType, intdirection, intflags) 来控制音量的大小 例:   AudioManager audioManager ;   audioM