SoundPool循环播放

今天做项目让写一个循环播放音频文件功能,看了下网上的例子,也试了试他们的代码,总结来说有以下二个特点:

1.能放不能关的
2. 关掉后不能放的

然后自己看了看文档,自己写了一个小东西,供大家参考,如有错误,请指出来本人虚心改正。接下来请看


/*** 音频播放管理器** @author 79442* @date 2018/2/2*/public class SoundPoolMgr {@SuppressLint("StaticFieldLeak")private static SoundPoolMgr INSTANCE;private Context mContext;private SoundPool mSoundPool;//创建一个HashMap对象,使用HashMap管理各种音频private HashMap<Integer, Integer> soundmap = new HashMap<Integer, Integer>();private int streamID = -1;//是否开始播放private boolean disPlayer = false;/***单例模式*/public static SoundPoolMgr getInstance(Context context) {if (INSTANCE == null) {INSTANCE = new SoundPoolMgr(context);}return INSTANCE;}private SoundPoolMgr(Context mContext) {this.mContext = mContext;// 第一个参数为同时播放数据流的最大个数,第二数据流类型,第三为声音质量;mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);}/***加载音频文件存储在map中*/public void load() {// 把你的声音素材放到res/raw里,第2个参数即为资源文件,第3个为音乐的优先级;soundmap.put(1, mSoundPool.load(mContext, R.raw.alert, 1));}/*** Play a sound from a sound ID.** @param soundID     通过load方法返回的音频* @param leftVolume  左声道的音量* @param rightVolume 右声道的音量* @param priority    优先级,值越大,优先级越高* @param loop        循环的次数:0为不循环,-1为循环* @param rate        指定速率,正常位1,为地位0.5,最高位2* @return non-zero streamID if successful, zero if failed*/public void player(int soundId) {if (streamID != -1) {autoResume();}if (!disPlayer) {streamID = mSoundPool.play(soundmap.get(soundId), 1, 1, 1, -1, 1);disPlayer = true;}}/*** 暂停*@param streamID 为play后获得的音频流ID*@param disPlayer 这个Boolean值是为了不让同时播放多个音频文件,如果有需求可以去掉*/public void pause() {if (streamID != 0) {if (disPlayer) {mSoundPool.pause(streamID);disPlayer = false;}}}/*** 暂停正在播放的所有数据流*/public void autoPause() {if (soundmap != null) {mSoundPool.autoPause();}}/*** 自动恢复之前调用autoPause()时暂停的所有流*/private void autoResume() {mSoundPool.autoResume();}
}

好吧,我想说代码其实挺简单的,注释也基本都全了,收拾东西下班。

SoundPool循环播放相关推荐

  1. SoundPool 音频播放 详解 示例

    demo地址:https://github.com/baiqiantao/PermissionTest.git 官方文档 文档位置:https://developer.android.google.c ...

  2. SoundPool类播放音频、案例弹钢琴

    SoundPool即音频池,可以同时播放多个短小的音频,而且占用资源少,其适合在应用程序中播放按键音或者消息提示音等. SoundPool类常用方法 方法名称 功能描述 load() 加载音频文件 p ...

  3. 多图片每隔2S循环播放

    这算是自己的第一篇博文吧,记录下关于web的学习路程,虽然在别人眼里平淡无奇,不过我能力有限,一步步慢慢来-- 因为自己的疏忽与大意,急于把自己的代码精简,却没有去测试是否实现了代码原来的功能,造成之 ...

  4. js实现图片从左到右循环播放

    以前看同学的微信小游戏.背景场景是一张长图循环播放的.那么怎么实现循环播放呢? <!DOCTYPE html> <html><head><title>图 ...

  5. webview加载本地html_安卓webview html5 自动播放本地视频,网上视频,可以循环播放...

    我们做安卓开发时,webview中发现html5 视频的autoplay根本没实现,查看了下android 源码HTMLVideoElement.cpp也未见相应处理,网上有资料显示,这可能关乎UI线 ...

  6. C# mciSendString()实现循环播放音乐

    声明这是 微软论坛上看的. 我看了很多人都在查找C#   mciSendString()循环播放音乐 学英语重要呀. using System; using System.Runtime.Intero ...

  7. Python 实现图片轮播及音乐循环播放

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/enland_lan/article/d ...

  8. html flash 循环播放,在网页中插入flv格式的flash视频怎么让其循环播放_html/css_WEB-ITnose...

    求解 在网页中插入flv格式的flash视频怎么让其循环播放 回复讨论(解决方案) 求解 在网页中插入flv格式的flash视频怎么让其循环播放 这个得让flash coder设置flash播放器吧 ...

  9. 关于今天写Flex视频循环播放所出现的sdk问题

    问题描述:用Flex写的Air视频循环播放,当在FB编辑器中运行测试时,视频可以正常循环,当不内嵌Air打包时就会出现播放一段时间后暂停不播放了. 问题分析:主要是在编辑器里运行正常,一打包就会出现暂 ...

  10. 微海鼠标自动点击器 支持录制和循环播放

    介绍: 这个软件是前段时间一个小伙伴私信我提到的小工具,花了点时间,给写了,主要是用于处理一些重复性的操作,解放双手用的.省时省力. 功能简单 F7 =>录制/停止录制 F8=>播放脚本/ ...

最新文章

  1. 编程基础知识科普:C#中的问号运算符
  2. 【 MATLAB 】信号处理工具箱之波形产生函数 gauspuls
  3. java尝试编写macd,试验顶背离底背离
  4. 什么叫做多媒体计算机技术,多媒体计算机系统是什么
  5. multinorm r语言_与心理学数据分析相关的R工具包
  6. 7.18 collection random os sys等模块
  7. 戳破“砖家”假面:唯快不破的时代,为什么这件事一定要慢慢做?
  8. 不是美工却依然想写出美丽的CSS该肿么办
  9. UDK游戏开发基础命令
  10. system()函数
  11. dig命令查询结果解析
  12. hua图软件 mac_CAD迷你画图for Mac-CAD迷你画图Mac版下载 V3.3.6-PC6苹果网
  13. HYSPLIT简明教程
  14. 2021-06-24
  15. Android动态更换图标
  16. 面试经验--Lowe Profero
  17. android+特殊符号过滤,android 特殊符号过滤
  18. 蓄水池采样算法的python实现_蓄水池采样算法的python实现_蓄水池抽样及实现
  19. python --enumerate用法
  20. 车载冰箱E-mark认证要多长时间?

热门文章

  1. HTTP协议响应头之Transfer-Encoding:分块传输详解
  2. Excel里怎么冻结某一行某一列
  3. jquery省市县三级导航栏
  4. 1.Hölder不等式的推广以及简单应用
  5. WinRM(Windows远程管理)介绍,Python远程操作Windows
  6. Linux环境安装Postgresql报错。configure: error: zlib library not found
  7. android录屏存在什么位置,安卓视频录制在哪里
  8. 计算机技术在生物学中的应用鲁东大学,项目学习在高中生物学教学中的应用研究...
  9. laravel文档工具
  10. 如何免费获取基于公网 IP 的 SSL 证书 (无需域名)