SoundPool soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);

HashMap<Integer, Integer> soundPoolMap = new HashMap<Integer, Integer>();

soundPoolMap.put(1, soundPool.load(this, R.raw.dingdong1, 1));

soundPoolMap.put(2, soundPool.load(this, R.raw.dingdong2, 2));

public void playSound(int sound, int loop) {

AudioManager mgr = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);

float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);

float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

float volume = streamVolumeCurrent/streamVolumeMax;

soundPool.play(soundPoolMap.get(sound), volume, volume, 1, loop, 1f);

//参数:1、Map中取值   2、当前音量     3、最大音量  4、优先级   5、重播次数   6、播放速度

}

this.playSound(1, 0);

MediaPlayer mp = ...; //Whatever
float speed = 0.75f;
mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

不过这种方法只能在API等于23及以上使用。目前找到的就这两种办法。

一是按照SoundPool 的要求改造音频文件;
二是放弃API小于23以下的手机,或者打一顿产品经理。

顺便记下获取raw 资源ID的方法:

int resId=context.getResources().getIdentifier(raw, "raw", context.getPackageName());
Uri uri=Uri.parse("android.resource://" + context.getPackageName() + "/raw/" + resId);
  • 1
  • 2
  • 1
  • 2

soundPool的使用的更多相关文章

  1. Android 使用SoundPool播放音效

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

  2. Android音频播放之SoundPool

    SoundPool 一.基本概念 在Android应用程序的开发过程中,经常需要播放多媒体文件,也许最先想到的会是MediaPlayer类了,该类提供了播放.暂停.停止及重复播放等功能性方法(该类位于 ...

  3. 使用SoundPool播放音效

    针对应用程序经常需要播放密集.短促的音效,因为MediaPlayer存在如下缺点: 1.资源占用量较高.延迟时间较长. 2.不支持多个音效同时播放. SoundPool使用音效池的概念来管理多个短促的 ...

  4. Android SoundPool.play方法的音量与系统音量的关系

    Android中播放音频,除了使用MediaPlayer,还可以使用SoundPool.SoundPool使用音效池的概念来管理多个短促的音效,对于需要短促的提示音的场景特别合适. 通常调用Sound ...

  5. Android中的音频播放(MediaPlayer和SoundPool)

    Android中音频和视频的播放我们最先想到的就是MediaPlayer类了,该类提供了播放.暂停.停止.和重复播放等方法.该类位于android.media包下,详见API文档.其实除了这个类还有一 ...

  6. Android的SoundPool

    开发Android软件中我们可能经常需播放多媒体声音文件,一般使用MediaPlayer类但该类占用资源较多,对于游戏等应用可能不是很适合,SoundPool类在SDK的android.media.S ...

  7. android SoundPool播放音效

    MediaPlayer的缺点: 资源占用量高,延时时间较长 不支持多个音效同一时候播放 SoundPool主要用于播放一些较短的声音片段,CPU资源占用率低和反应延时小,还支持自行色设置声音的品质,音 ...

  8. SoundPool没有声音的问题

    在项目中需要播放一个提示,很短的一个声音,Android中播放声音有两种方式:MediaPlayer和SoundPool.相对来说SoundPool比较轻量级一些,多用在播放比较短急的声音,Media ...

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

    [1]使用MediaPlayer实现一般的音频播放 MediaPlayer播放通常的音频文件 MediaPlayer mediaPlayer = new MediaPlayer(); if (medi ...

  10. Android中的音频处理------SoundPool,MediaRecorder,MediaPlayer以及RingStone总结

    用Soundpool可以播一些短的反应速度要求高的声音, 比如游戏中的爆破声, 而Mediaplayer适合播放长点的. MediaRecorder主要用来录音. SoundPool载入音乐文件使用了 ...

随机推荐

  1. Seetaface 向树莓派 移植

    seetaface由中科院计算所山世光研究员带领的人脸识别研究组研发.代码基于C++实现,不依赖第三方库.然而,目前开源的代码,是在windows vs上编译的,对于我们这帮mac/linux用户来说 ...

  2. echarts x轴文字显示不全(解决方案)

    echarts x轴标签文字过多导致显示不全 如图: 解决办法1:xAxis.axisLabel 属性 axisLabel的类型是object ,主要作用是:坐标轴刻度标签的相关设置.(当然yAxis ...

  3. delphi 组件容器TObjectList代替List

    delphi 组件容器TObjectList代替List TObjectList objList->delete(0); 这个会释放第0行元素的对象 class TTabFormInfo { p ...

  4. JAXB--@XmlElementWrapper注解(二)

    在JAXB标准中,@XmlElementWrapper注解表示生成一个包装 XML 表示形式的包装器元素. 此元素主要用于生成一个包装集合的包装器 XML 元素.因此,该注释支持以下两种形式的序列化. ...

  5. Proxmox VE 添加软RAID

    apt-get update; apt-get install mdadm     安装软件 mdadm -C <设备名字> 创建模式 -l raid等级,0,1,5之类的 -n 使用的磁 ...

  6. gain 基尼系数

    转至:http://blog.csdn.net/bitcarmanlee/article/details/51488204 在信息论与概率统计学中,熵(entropy)是一个很重要的概念.在机器学习与 ...

  7. codeforces:818G Four Melodies分析

    题目 题目大意是有一组自然数v1,...,vn,要求在其中找到四个非空子序列(从原来的自然数序列中挑选一部分数,并按原先后关系排序),这些子序列互不相交,且每个子序列中的前后元素的值要么差值的绝对值为 ...

  8. Cocoa Touch(二):数据存储CoreData, NSKeyArchiver, NSOutputStream, NSUserDefaults

    应用程序离不开数据的永久存储,有两种方式实现存储:数据库和文本文件. 作为存储管理器,最基本的功能就是增删改查了. CoreData 1.插入 AppDelegate *app = [[UIAppli ...

  9. php解决时间超过2038年

    问题 超过2038年的时间 php怎么处理? echo date('Y-m-d',2147483647); //date函数能处理的最大整数2147483647 ->2038-01-19 就是2 ...

  10. 链接ftp,把文件或图片上传到ftp指定的文件夹中

    /******************************************************************** *  * * Filename : .java * Auth ...