Android音效SoundPool问题:soundpool 1 not retry 今天开发中要用到SoundPool,遇到soundpool 1 not retry无法播放声音,MediaPlay可以 后来经过一番研究,发现: 出现soundpool 1 not retry问题的代码,无法播放声音 mgr = (AudioManager) MainActivity.this.getSystemService(Context.AUDIO_SERVICE);         //初始化sound…
SoundPool 一.基本概念 在Android应用程序的开发过程中,经常需要播放多媒体文件,也许最先想到的会是MediaPlayer类了,该类提供了播放.暂停.停止及重复播放等功能性方法(该类位于android.media包下,详见API文档).也可参考博文http://www.cnblogs.com/tgyf/p/4700177.html. 但使用MediaPlayer类的问题是占用资源较多,对于游戏这样复杂.简短配音多的应用可能不是很适合,这时候就需要用到SoundPool类了,其定义在…
SoundPool —— 适合短促且对反应速度比较高的情况(游戏音效或按键声等) 下面介绍SoundPool的创建过程: 1. 创建一个SoundPool (构造函数) public SoundPool(int maxStream, int streamType, int srcQuality) maxStream —— 同时播放的流的最大数量streamType —— 流的类型,一般为STREAM_MUSIC(具体在AudioManager类中列出)srcQuality —— 采样率转化质量,…
MainActivity.java package com.example.pengdonglin.soundpool_demo; import android.annotation.SuppressLint; import android.media.AudioManager; import android.media.SoundPool; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; im…
Android 5.0手机对xUtils-2.6.13.jar请求时会出现retry error, curr request is null 情况, 修复解决方式: 找到library/src/com/lidroid/xutils/cache/KeyExpiryMap.java 感兴趣的关注一下微信订阅号爱开发:微信号:aikaifa 或扫描一下以下二维码: jar包下载…
在Android开发中我们经常使用MediaPlayer来播放音频文件,但是MediaPlayer存在一些不足,例如:资源占用量较高.延迟时间较长.不支持多个音频同时播放等.这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想,例如在对时间精准度要求相对较高的游戏开发中. 本文地址:http://www.cnblogs.com/wuyudong/p/5679191.html,转载请注明源地址. 在游戏开发中我们经常需要播放一些游戏音效(比如:子弹爆炸,物体撞击等),这些音效的共同特…
MediaPlayer的缺点: 资源占用量高,延时时间较长 不支持多个音效同一时候播放 SoundPool主要用于播放一些较短的声音片段,CPU资源占用率低和反应延时小,还支持自行色设置声音的品质,音量,播放比率等參数,避免使用SoundPool来播放歌曲或者做游戏背景音乐,仅仅有那些短促的密集的声音才考虑使用SoundPool播放 构造器: public SoundPool (int maxStreams, int streamType, int srcQuality) Parameters…
[1]使用MediaPlayer实现一般的音频播放 MediaPlayer播放通常的音频文件 MediaPlayer mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { mediaPlayer.reset();//重置为初始状态 } mediaPlayer.setDataSource("/mnt/sdcard/god.mp3"); mediaPlayer.prepare();//缓冲 mediaPlayer.s…
Android中播放音频,除了使用MediaPlayer,还可以使用SoundPool.SoundPool使用音效池的概念来管理多个短促的音效,对于需要短促的提示音的场景特别合适. 通常调用SoundPool.load来加载某个音频文件,获得一个音效id,然后就可以用play方法来播放. SoundPool的play方法原型如下: int play(int soundID, float leftVolume, float rightVolume, int priority, int loop,…
用Soundpool可以播一些短的反应速度要求高的声音, 比如游戏中的爆破声, 而Mediaplayer适合播放长点的. MediaRecorder主要用来录音. SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作. 但是这里如果音效文件过大没有载入完成,我们调用play方法时可能产生严重的后果, 这里AndroidSDK提供了一个SoundPool.OnLoadCompleteListener类来帮助我们了解媒体文件是否载入完成, 我们重载onLoadComplete(S…
使用SoundPool播放音效 假设应用程序常常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.由于MediaPlayer存在例如以下缺点: 1)         延时时间较长,且资源占用率高. 2)         不支持多个音频同一时候播放. Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效.SoundPool使用音效池的概念来管理多个短促的音效,比如它能够開始就载入20个音效.以后在程序中按音效的ID进行…
今天找素材重做FlappyBird时学习了一下怎样为应用设置背景音频,发现通过封装SoundPool类就能够非常好的做到这一点. SoundPool类比較适合播放一些类似游戏音效这样的比較短促并且较小的音频流,并且它支持同一时候播放多个音频流,而比較大的音频更适合用MediaPlayer来播放. 大致解说一下SoundPool类使用时的基本使用方法: 1. 把要用到的音频资源通过load()方法载入. 2. 通过创建的SoundPool对象的setOnLoadCompleteListener()…
一.MediaPlayer对象常用方法介绍: MediaPlayer mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { mediaPlayer.reset();//重置为初始状态 } mediaPlayer.setDataSource("/mnt/sdcard/god.mp3"); mediaPlayer.prepare();//缓冲 mediaPlayer.start();//开始或恢复播放 mediaPl…
Android中音频和视频的播放我们最先想到的就是MediaPlayer类了,该类提供了播放.暂停.停止.和重复播放等方法.该类位于android.media包下,详见API文档.其实除了这个类还有一个音乐播放类那就是SoundPool,这两个类各有不同分析一下便于大家理解 MediaPlayer: 此类适合播放较大文件,此类文件应该存储在SD卡上,而不是在资源文件里,还有此类每次只能播放一个音频文件. 此类用法如下: 1.从资源文件中播放 MediaPlayer   player  =   n…
开发Android软件中我们可能经常需播放多媒体声音文件,一般使用MediaPlayer类但该类占用资源较多,对于游戏等应用可能不是很适合,SoundPool类在SDK的android.media.SoundPool,顾名思义是声音池的意思.主要播放一些较短的声音片段,可以从程序的资源或文件系统加载,相对于MediaPlayer类可以做到使用较少的CPU资源和较短的反应延迟.           SoundPool和其他声音播放类相比,其特点是可以自行设置声音的品质.音量.播放比率等参等.并且它…
好吧,我们今天来聊聊SoundPool这东西. 据说这个东西是冰激凌(Android4.0)里才引入的一个新东西.按照官方的意思大多数情况下是给游戏开发用的,比如一个游戏10关,它能在游戏开始前一次加载所有10关的背景音乐,这其中也包括了解码操作,当真正要播放时候就直接把音频数据写设配了,大家自己琢磨下到底有什么好处,我自己确实没觉得特别大的好处. 扯淡完了就开始说正题了.老规矩,开撸之前比如得有个洞吧,就是入口,你们懂得. 这里我就以拍照音的播放来做切入点一步步分析它是怎么工作的.(当然你自己…
一.引入命名空间 using Android.Media; 二.声明变量 SoundPool soundPool; int soundPoolId; 三.实例化对象 soundPool = new SoundPool(10, Stream.Music, 0); soundPoolId = soundPool.Load(this, Resource.Drawable.beep, 1); 四.读取mp3音频 private void Sound() { //第一个参数为id //第二个和第三个参数为…
内容过程中,把写内容过程中比较好的内容段记录起来,下面的内容是关于Android开发多媒体应用之SoundPool的使用的内容,希望对各位也有用途. public class MainActivity extends Activity { private Button button1; private Button button2; private Button button3; private Button button4; private Button button5; private So…
在Android开发中有时候需要用到播放声音操作,在android API 的media包中有三种方式可供我们选择,它们分别是Ringtone,SoundPool,MediaPlayer.因为在我目前的项目中暂时用不到播放很长的音频文件,只需要播放一些简短的提示音,所以在这篇博文中我只是简单的记录下. 1.Ringtone.java 2.SoundPool.java 3.MediaPlayer.java 4.demo 5.bug record 注意: 关于这三个类的介绍我全部用的是android…
android开发之背景音乐与音效 一:添加背景音乐(MediaPlayer) MediaPlayer class can be used to control playback of audio/video files and streams.MediaPlayer 类是用来控制音频和视频文件的播放: 实例化MediaPlayer的方法: 直接new的方式: MediaPlayer mp = new MediaPlayer(); 使用create的方式,如: MediaPlayer mp =…
在一款游戏中,除了华丽的界面 UI 直接吸引玩家外,另外重要的就是游戏的背景音乐与音效:合适的背景音乐以及精彩的音效搭配会令整个游戏上升一个档次. 在 Android 中.常用于播放游戏背景音乐的类是 MediaPlayer, 而用于游戏音效的则是 SoundPool 类.   1. MediaPlayer MediaPlayer 实例化不是 new 出来的,而是通过调用静态方法得到的,这里有几种静态方法:   create(Context context, Uri uri) 作用:通过Uri创…
简介 如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1) 延时时间较长,且资源占用率高. 2) 不支持多个音频同时播放. Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放. SoundPool主要用于播放一些较短的声音片段,与Med…
1. 游戏音效SoundPool 游戏中会根据不同的动作 , 产生各种音效 , 这些音效的特点是短暂(叫声,爆炸声可能持续不到一秒) , 重复(一个文件不断重复播放) , 并且同时播放(比如打怪时怪的叫声 , 和技能释放的声音需要同时播放) , 即时(技能用处之后声音马上随着玩家操作发出,不能有延迟). MediaPlayer会占用大量的系统资源 , 并且不能同时播放 , 并且无法实现即时音效 , 这里引入了一个新的类 -- SoundPool , 这个类完全满足上面提出的四点要求 , 可以无延…
一.音效的分类 音效按照作用的不同,可以将音效分为即时音效和背景音乐.两种音效在Android中的实现技术是不同的. 主要的实现方式为:SoundPool.MediaPlayer. 区别在于,MediaPlayer会在播放音频的时候,会占用大量的系统资源,并且播放的时候,还需要缓冲,有较大的时延.但是SoundPool的机制是将声音资源加载到内存中,然后在需要播放的地方进行播放,几乎没有时延,但是也正是因为这样的机制,限制了加载的文件的大小,不然会出现加载失败或者内存占用过大的情况,原则上Sou…
如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1) 延时时间较长,且资源占用率高. 2) 不支持多个音频同时播放. Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放. SoundPool主要用于播放一些较短的声音片段,与MediaP…
1. 游戏音效SoundPool 游戏中会根据不同的动作 , 产生各种音效 , 这些音效的特点是短暂(叫声,爆炸声可能持续不到一秒) , 重复(一个文件不断重复播放) , 并且同时播放(比如打怪时怪的叫声 , 和技能释放的声音需要同时播放) , 即时(技能用处之后声音马上随着玩家操作发出,不能有延迟). MediaPlayer会占用大量的系统资源 , 并且不能同时播放 , 并且无法实现即时音效 , 这里引入了一个新的类 -- SoundPool , 这个类完全满足上面提出的四点要求 , 可以无延…
在开发手电筒应用的处理音效的过程中,看网上使用的是MediaPlayer,因为音效一般都比较短,所以这里使用的是SoundPool,如下: SoundPool soundPool=new SoundPool(2,AudioManager.STREAM_MUSIC,0); //第一个参数,2为可以同时播放两个音效,第二是使用什么音频流,第三个暂未使用,传0. AssetManager assetMgr=getAssets();  AssetFileDescriptor assetfileDescr…
//音效的音量 int streamVolume; //定义SoundPool 对象 private SoundPool soundPool; //定义HASH表 private HashMap<Integer, Integer> soundPoolMap; /*************************************************************** * Function: initSounds(); * Parameters: null * Returns…
package com.example.soundpool; import android.media.AudioManager; import android.media.SoundPool; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; public class MainActivity extends Activity {…
/** * 音效播放 */ private SoundPool mPool; /** * 音效id */ private int voiceID; voiceID = initSoundPool(); /** * 初始化SoundPool */ private int initSoundPool() { /** * 21版本后,SoundPool的创建发生很大改变 */ //判断系统sdk版本,如果版本超过21,调用第一种 if (Build.VERSION.SDK_INT >= 21) { S…