Android中的soundpool小结

安时积分法和开路电压法结合估算锂电池SOC 基于安时积分法和开路电压法结合的锂电池SOC估计Simulink仿真建模,利用安时积分法计算放电过程中的SOC,在搁置状态利用开路电压法进行SOC修正。 阅读详情
之前只知道android中可以用mediaplayer播放音乐,原来今天才发现 
可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音, 
比如游戏中的爆破声,而mediaplayer适合播放长点的。 
1. SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作。但是这里如果音效文件过大没有载入完成,我们调用play方法时可能产生严重的后果,这里Android SDK提供了一个SoundPool.OnLoadCompleteListener类来帮助我们了解媒体文件是否载入完成,我们重载 onLoadComplete(SoundPool soundPool, int sampleId, int status) 方法即可获得。 
2. 从上面的onLoadComplete方法可以看出该类有很多参数,比如类似id,是的SoundPool在load时可以处理多个媒体一次初始化并放入内存中,这里效率比MediaPlayer高了很多。 
3. SoundPool类支持同时播放多个音效,这对于游戏来说是十分必要的,而MediaPlayer类是同步执行的只能一个文件一个文件的播放。 


使用方法: 
1. 创建一个SoundPool 

  public SoundPool(int maxStream, int streamType, int srcQuality) 

  maxStream —— 同时播放的流的最大数量 

  streamType —— 流的类型,一般为STREAM_MUSIC(具体在AudioManager类中列出) 

  srcQuality —— 采样率转化质量,当前无效果,使用0作为默认值 

  eg. 

  SoundPool soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0); 

  创建了一个最多支持3个流同时播放的,类型标记为音乐的SoundPool。 


2 一般把多个声音放到HashMap中去,比如 
    soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100); 
    soundPoolMap = new HashMap<Integer, Integer>();   
    soundPoolMap.put(1, soundPool.load(this, R.raw.dingdong, 1)); 

  soundpool的加载: 
      int  load(Context context, int resId, int priority)  //从APK资源载入 
  int  load(FileDescriptor fd, long offset, long length, int priority)  //从FileDescriptor对象载入 
  int  load(AssetFileDescriptor afd, int priority)  //从Asset对象载入 
  int  load(String path, int priority)  //从完整文件路径名载入 
最后一个参数为优先级。 

3 播放 
play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) ,其中leftVolume和rightVolume表示左右音量,priority表示优先级,loop表示循环次数,rate表示速率,如 
//速率最低0.5最高为2,1代表正常速度 
sp.play(soundId, 1, 1, 0, 0, 1); 
  而停止则可以使用 pause(int streamID) 方法,这里的streamID和soundID均在构造SoundPool类的第一个参数中指明了总数量,而id从0开始。 
A*(star)算法原理讲解以及程序实现(基于Python) 本文将以迷宫探索最优路径为例,讲解A *搜索算法原理及其程序实现。在原理讲解部分,首先从为什么要使用A *搜索算法和A *搜索算法的全局最优逻辑出发,讲解A *算法的原理。其次对A *的行动函数g(n)和启发函数h(n)的细节进行了讲解说明,并补充了启发函数的选择对于A *算法的影响。在程序实现部分,首先从程序流程框图出发,解释A *算法的流程。其次按函数的类划分并讲解主要代码,接着展示程序的运行结果,最后对A *算法进行总结分析。 阅读详情

相关推荐

慕课软件质量保证与测试(习题集)

慕课金陵科技学院.软件质量保证与测试.期末复习.习题汇总0 总目录1 绪论1.1 软件质量保证与测试的产生与发展1.2 软件缺陷,软件错误,软件故障1.3 软件质量保证与测试的意义,原则和挑战1.4 单元测试1.5 课后作业2 软件测试策略2.1 软件测试的模型,过程和生命周期2.2 软件测试的方法和技术2.3 单元测试2.4 课后作业3 黑盒测试3.1 黑盒测试概述3.2 等价类划分测试3.3 边界值测试3.4 错误推测法3.5 判定表驱动法3.6 因果图法3.7 场景法3.8 正交实验法3.9 单元测试

weixin_42473228的博客 5万+

SoundPool使用

之前只知道android中可以用mediaplayer播放音乐,原来今天才发现  可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音,  比如游戏中的爆破声,而mediaplayer适合播放长点的。  1. SoundPool载入音乐文件使用了

sunjunlaing52的专栏 642

GD32F303开发实战(一):从零搭建MDK工程与时钟配置详解

本文详细介绍了如何从零开始为GD32F303微控制器搭建一个清晰、可维护的MDK工程模板。内容涵盖开发环境准备、工程目录结构规划、文件分组管理、关键工程配置,并重点解析了时钟树原理,手把手指导配置108MHz系统时钟。通过实战步骤与常见问题排查,帮助开发者构建一个稳定可靠的开发基础,便于后续功能扩展。

weixin_29174141的博客 270

Android SoundPool

SoundPool 一般用来播放密集,急促而又短暂的音效。SoundPool 对象可以看作是一个可以从 APK 中导入资源 或者从文件系统中载入文件的样本集合。它利用 MediaPlayer 服务为音频解码为一个原始16位 PCM流。这个特性使得应用程序可以进行流压缩,而无须忍受在播放音频时解压所带来的 CPU 负载和延时。

liuning1985622的博客 1644

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

单细胞实战之数据净化三部曲:细胞周期校正、双胞体剔除与RNA污染清理——技术解析与实战指南

本文深入解析单细胞数据分析中至关重要的数据净化步骤,即细胞周期校正、双胞体剔除与RNA污染清理。通过实战代码演示与原理剖析,指导读者如何有效识别并去除技术噪音,从而获得更纯净、可靠的数据,为后续的细胞分群、差异表达等高级分析奠定坚实基础。

weixin_29274337的博客 204

Android中的MediaPlayer、SoundPool、Assets

Android中的MediaPlayer、SoundPool、Assets。 在一款游戏或者APP中,除了华丽的界面UI直接吸引玩家或用户外,另外重要的就是游戏背景音乐与音效。合适的背景音乐以及精彩的音效搭配会令整个游戏或APP上升一个档次。 在Android中,常用于播放游戏背景音乐的类是MediaPlayer,而用于游戏音效的则是SoundPool类,其中与之相关的还有Assets文件夹。 ...

手写我对你的温柔 4239

【Tableau】解决订阅报表PDF中文显示为乱码(方框)问题

一、问题描述 在tableau server网页端报表中文字符能正常显示,但在订阅后发送到邮箱时,以图片格式呈现的内容中中文字符显示为方框。 网页端报表能正常显示中文字符: 邮件中的报表不能正常显示中文字符: 二、问题分析 网页端字符显示情况是由html编码决定的,而tableau生成图片时是通过所部署的服务器的字体文件显示字体。因此可能是由于Linux服务器缺失相关的字体文件导致网页端选择的中文字体在服务器上缺失对应的字体文件导致的。则考虑在服务器引入对应的字体文件。 三、问题解决 1、查看服务器现有

why_not_study的博客 2833

Android开发之SoundPool使用详解

如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:

fengyuzhengfan的专栏 1万+

GATK SNP过滤参数优化:从标准到个性化调整的实践指南

本文深入探讨了GATK SNP过滤参数的个性化调整策略,强调不应盲目套用官方标准参数。文章详细拆解了QD、FS、SOR等关键过滤参数的含义,并提供了通过数据分布分析、文献调研和迭代测试来确定适合自身数据(如动植物重测序)最佳阈值的实践方法,旨在帮助研究者在保留真实变异与剔除假阳性信号之间找到最优平衡。

weixin_29216049的博客 275

粒子群算法Particle Swarm Optimization超详细解析+代码实例讲解

粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为 PSO, 是近年来由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary Algorithm - EA)。

猫敷雪 893

Android SoundPool 的使用

目录 1,概述 2,SoundPool 的创建 3,资源加载与播放 4,播放控制 5,播放音量调节 6,资源释放 7,注意事项 8,实例 1,概述 最近工作接触到Android 中的 SoundPool 类,使用后发觉很是有意思,记录一下以备后查。 Android 开发中,难免会碰到音视频相关的处理。SoundPool 是 Android 提供的一个API类,用来播放简短的音频,使用简单但功能相对强大。只需花很少的气力,就可以完成音频的播放、暂停、恢复及停止等操作。从名字上也可以看

weixin_42602900的博客 3418

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码)

本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。

嵌入式技术开发 5099

Android SoundPool使用小结

private SoundPool soundPool;    //第一个参数是声音最大数量,第二个是声音类型 如系统类型等待,第三个是声音质量soundPool=new SoundPool(1, AudioManager.STREAM_SYSTEM,5);//第一个参数是上下文,第二个参数是资源ID,第三个参数是优先级 soundPool.load(this,R.raw.bofangwanbi,...

zcz475421852的博客 729

EPSON打印机清零软件合集

EPSON清零软件(1390)EPSON清零软件(K100)EPSON清零软件(L100、L101、L200、L201)EPSON清零软件(L1118、L1119、L3106、L3108、L3109、L3115、L3116、L3117、L3118、L3119、L3156、L3158、L5198)EPSON清零软件(L111、L211、L301、L303、L351、L353、L358、L551)EPSON清零软件(L1218、L1258、L1259、L3218、L3219、L3251、L3253、L3255、L3256、L3258、L3266、L3267、L3268、L3269、L5298)EPSON清零软件(L130、L220、L310、L313、L360、L363、L365)EPSON清零软件(L130、L220、L310、L360、L365)EPSON清零软件(L1800)EPSON清零软件(L3161、L3163、L3166、L3167、L3168、L3169)EPSON清零软件(L380、L383、L385、L485)等等。。。。。。。

GRASSHOPPER VIPERS 插件

GRASSHOPPER VIPERS 插件

Android中的soundpool小结(转)

之前只知道android中可以用mediaplayer播放音乐,原来今天才发现 可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音, 比如游戏中的爆破声,而mediaplayer适合播放长点的。 1. SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作。但是这里如果音效文件过大没有载入完成,我们调用play方法时可能产生严重的后果,这里Andro...

iteye_11914的博客 145

keras_IMDB数据集

这个数据集适用于keras内置的数据集——电影情感分类,但由于墙比较厚,所以本人就将其上传以便更好实验和阅读,具体项目请移步(https://blog.youkuaiyun.com/qq_32796253/article/details/88835699)

android系列:soundpool小结

之前只知道android中可以用mediaplayer播放音乐,原来今天才发现  可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音,  比如游戏中的爆破声,而mediaplayer适合播放长点的。  1. SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作。但是这里如果音效文件过大没有载入完成,我们调用play方法时可能产生严重的后果,这

Rome was not built in one day 559

AEC- Q200:2023(Rev E)无源元件的应力测试资格 - 完整英文电子版(113页).rar

完整英文电子版AEC- Q200:2023(Rev E) STRESS TEST QUALIFICATION FOR PASSIVE COMPONENTS - (无源元件的应力测试资格)。本规范定义了最低压力测试驱动的认证要求和参考测试条件,以进行无源电气设备的认证。 本文件并不免除供应商满足其公司内部认证计划或满足其客户所需的任何附加要求的责任。 在本文档中,“用户”定义为遵守本文档的所有公司。 用户负责确认和验证所有证明符合本文件的资格和评估数据。

Android中SoundPool的小结(转)

之前只知道android中可以用mediaplayer播放音乐,原来今天才发现  可以用soundpool,用soundpool可以播一些短的反应速度要求高的声音,  比如游戏中的爆破声,而mediaplayer适合播放长点的。  1. SoundPool载入音乐文件使用了独立的

570

android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结

android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结2015年12月22日 18:57:39阅读数:5228在android开发中有时候需要用到播放声音操作,在android API 的media包中有三种方式可供我们选择,它们分别是Ringtone,SoundPool,MediaPlayer。因为在我目前的项目中暂时用不到播放很长的音频文件,只需要...

jhope的专栏 2661
上一篇: Activity中获取view的高度和宽度为0的原因以及解决方案
下一篇: 重写ViewPager实现单个帖子进入左右切换和不缓存问题
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值