返回

海口秀英区web前端培训海口龙华区IT培训

Android的SoundPool类使用与利弊

java学习网更新时间:2021-10-16 浏览:140

在开发设计Android软件中大家很有可能常常需播放视频多媒体系统音频文件,一般应用MediaPlayer类但此类占有資源较多,针对手机游戏等运用很有可能并不是很适 合,这儿Android123叙述下SoundPool类。SoundPool类在SDK的android.media.SoundPool,说白了是 响声池的含意。关键播放视频一些较短的响声精彩片段,能够从程序流程的資源或系统文件载入,相对性于MediaPlayer类能够*应用较少的CPU資源和较短的反映 延迟时间。

SoundPool和别的响声播放视频类对比,其特性是能够自主设定响声的质量、声音、播放视频比例等参等。而且它能够与此同时管理方法好几个声频流,每一个流都是有独自一人 的ID,对某一声频流的管理方法全是根据ID开展的。SoundPool基本上操作方法为:

建立一个SoundPool目标:new SoundPool(int maxStreams, int streamType, int srcQuality);

从資源或是文档加载声频流: load(Context context, int resId, int priority);

播放视频响声play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)

import android.media.AudioManager;

import android.media.SoundPool;

public class android123 extends Activity {

private SoundPool snd;

private int hitOkSfx;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//这儿特定响声池的较大 声频流数量为10,

//响声质量为5大伙儿能够自 己检测体会下实际效果

snd = new SoundPool(10, AudioManager.STREAM_SYSTEM,5);

//加载声频流

hitOkSfx = snd.load(context, R.raw.ok, 0);

Button btn=(Button)findViewById(R.id.btn);

btn.setOnClickListener(new View.OnClickListener(){

public void onClick(View v){

// play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)

//播放视频声频,能够对上下声音各自设定,还能够设定优先,循环系统频次及其速度

//速度最少0.5**为2,1意味着 一切正常速率

snd.play(hitOkSfx, 1, 1, 0, 0, 1);

}

);

}

}

那样大家就可以应用SoundPool简易的播放视频一个声音了。坚信许多盆友早已想试一试了,但是SoundPool并不是至善至美的。现如今已经知道的资 料而言,SoundPool有一些设计方案上的BUG,从固件1.0逐渐有一些也没有修补,我们在应用中应当当心再当心。坚信未来Google会修补这种问 题,但大家**是或是整理出来:

1. SoundPool较大 只有申请办理1M的存储空间,这就代表着大家只有用一些很短的响声精彩片段,而不是用它来播放视频歌 曲或是玩游戏音乐背景。

2. SoundPool给予了pause和stop方式 ,但这种方式 提议**是不必随便应用,由于有一些情况下他们很有可能会使你 的程序流程无缘无故的停止。Android开发设计网提议应用这两个方式 的情况下尽量多做检测工作中,还有一些盆友体现他们不容易马上中断播放视频响声,只是把缓冲区域里的数 据播放视频完才会慢下来,或许会多播放视频一秒钟。

3. SoundPool的高效率难题。实际上SoundPool的高效率在这种播放视频类中算得上非常好的了,可是 有的盆友在G1中检测它或是有100ms上下的延迟时间,这很有可能会危害客户体验。或许这不可以管SoundPool自身,由于到特性比较好的Droid中这一 延迟时间就可以令人接纳了。

在目前SoundPool有这种缺点,但也拥有它不可替代的优势,根据这种大家提议大在以下状况中有应用 SoundPool:1.应用软件中的音效(功能键语音提示,信息等)2.游戏里面聚集而短暂性的响声(如好几个宇宙飞船与此同时发生爆炸),自然大伙儿还能够想起大量的应用方 法。

相关资讯

c++ vector 使用效率问题
2021-07-15 361
1. vector中的erase方式 高效率是很低。由于为了更好地维持vector中原素在存储空间中的持续性,在删掉某一原素以后,*将之后...
云计算技术与应用学什么东西
2021-07-16 288
云计算技术与应用是学什么的?众所周知,云计算技术是当前的热门技术, 云计算专*技*人才是香饽饽,计划学习云计算技术与应用...
初学者适合学习哪些编程语言
2021-07-15 261
许多同学想改行程序编写,可是那么多的计算机语言究竟该怎么选呢?头痛~如果你是一名具备创新性的开发人员或是想变成一名具备展望工作能力的开发人员得话,那麼,你应该最少在**是的计算机语言中挑选一个,相近 Python, JavaScript, C#, C++, PHP, Java, 或是 go...
java技术有哪些优点优势
2021-07-15 239
Java技术性有以下优势:简易、面向对象编程、分布式系统、表述实行、鲁棒性、安全性、系统架构保持中立、生命期、性能卓越、线程同步及其动态...
Java未来发展的趋势
2021-06-15 227
没有Java,甚至不会有大数据的大发展,Hadoop本身就是用Java编写的。当你需要在运行MapReduce的服务器集群上发布新功能时,你需...
C++的用处
2021-07-08 219
C++是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承...
北京达内教学怎么样 北京达内教育学习环境好吗
2021-07-15 218
日给大伙儿分享一些有关达内教育学习中心的相片,了解一下达内教育学习中心自然环境怎样。下边就跟随我一起来吧...
学什么技术有前途 Java怎么样
2021-07-19 215
如今正是互联网信息时代,随着时代的变迁肯定会发展的越来越好,而Java编程语言是最于我们生活息息相关的,用处范围广泛,比如:...

相关课程

栏目导航