是因为安卓限制了音效的内存,一般把mp3的比特率压缩一下.就可以搞定了.…
/** * 音效播放 */ private SoundPool mPool; /** * 音效id */ private int voiceID; voiceID = initSoundPool(); /** * 初始化SoundPool */ private int initSoundPool() { /** * 21版本后,SoundPool的创建发生很大改变 */ //判断系统sdk版本,如果版本超过21,调用第一种 if (Build.VERSION.SDK_INT >= 21) { S…
一.音效的分类 音效按照作用的不同,可以将音效分为即时音效和背景音乐.两种音效在Android中的实现技术是不同的. 主要的实现方式为:SoundPool.MediaPlayer. 区别在于,MediaPlayer会在播放音频的时候,会占用大量的系统资源,并且播放的时候,还需要缓冲,有较大的时延.但是SoundPool的机制是将声音资源加载到内存中,然后在需要播放的地方进行播放,几乎没有时延,但是也正是因为这样的机制,限制了加载的文件的大小,不然会出现加载失败或者内存占用过大的情况,原则上Sou…
本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551,John是EasyPusher安卓直播推流.EasyPlayer直播流媒体播放端的开发和维护者,在这方面为开源社区贡献了非常多的技术干货和代码,这里对John的辛苦劳作表示感谢! 在之前一片博客< EasyPusher实现安卓Android手机直播推送同步录像功能>(http://blog.csdn.net/jyt0551/article/details/58714595)中,我写到了Ea…
开发过程中遇到一个问题,一个8秒的音效,在android机器上播放不完就结束了:网上说是由于android播放音效的内存限制的:原因知道了,那怎么解决呢? 通过各种搜索查找发现还是解决不了问题,然后自己各种尝试,首先查找网上看到的降低音效比特率,将音效比特率降到128,再测测试,失败:继续降,64.32,仍然失败.于是果断的不在研究比特率,又去研究音效本身,发现这个音效是个立体音,那么就将音效变为单声道试试吧,一尝试,还真行. 解决办法: 1:先降低音频比特率试试: 2:看音效是不是立体音,是立…
本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551/article/details/60802145 我们在开发安卓Android流媒体音视频播放器时,可能会需要播放器静音或者降低音量的功能.比如说某款音乐播放器,当在后台播放时,如果此时有另外的系统通知声音发出,可能播放器会把音量降低,系统声音结束后,再调高:如果有来电了,播放器可能会把音乐暂停,等通话结束后再继续播放.还有,比方说我们在某个场合放个视频,不料音量很大,会引来很多目光(很尴尬…
1. 游戏音效SoundPool 游戏中会根据不同的动作 , 产生各种音效 , 这些音效的特点是短暂(叫声,爆炸声可能持续不到一秒) , 重复(一个文件不断重复播放) , 并且同时播放(比如打怪时怪的叫声 , 和技能释放的声音需要同时播放) , 即时(技能用处之后声音马上随着玩家操作发出,不能有延迟). MediaPlayer会占用大量的系统资源 , 并且不能同时播放 , 并且无法实现即时音效 , 这里引入了一个新的类 -- SoundPool , 这个类完全满足上面提出的四点要求 , 可以无延…
Python 开发安卓Android及IOS应用库Kivy安装尝试: 先来看看这货可以用来制作什么应用: Create a package for Windows Create a package for Android Creating packages for OS X Create a package for IOS 逆天的节奏啊,虽然600+页的英文文档,python3+还在on the way ,觉得这货潜力无穷啊. 当然,缺点就是要安装各种环境依赖,尤其是在win7平台下,估计会比较…
1. 游戏音效SoundPool 游戏中会根据不同的动作 , 产生各种音效 , 这些音效的特点是短暂(叫声,爆炸声可能持续不到一秒) , 重复(一个文件不断重复播放) , 并且同时播放(比如打怪时怪的叫声 , 和技能释放的声音需要同时播放) , 即时(技能用处之后声音马上随着玩家操作发出,不能有延迟). MediaPlayer会占用大量的系统资源 , 并且不能同时播放 , 并且无法实现即时音效 , 这里引入了一个新的类 -- SoundPool , 这个类完全满足上面提出的四点要求 , 可以无延…
假设先play长音效a,然后在a播放过程中反复执行:play短音效b,stop b,play b,... 则若a足够长,就会被b打断.而长音效被打断是最不可接受的. a之所以会被打断,推测原因是simpleAudioEngine对音源的管理不善,play b, stop b,再play b这个过程中不是重复使用同一个音源,而是不断新地使用下一个音源,当音源耗尽后又绕回,从而导致把a的音源占用,a被迫停止. 在不动simpleAudioEngine底层的情况下,目前还没有找到好的解决办法,当前项目…