作者snowoffish (yoyoyo~)
看板AndroidDev
标题[问题] SoundPool切换音效的Delay问题
时间Thu Apr 21 22:45:06 2011
开发层: (应用/框架/库/核心)
应用
问题:
各位神人好!小弟在用soundpool写一个吉他程式
所以需要切换音效,目前小弟用的这方法虽然有效
但似乎会延迟一秒後才会切换成功,不管一次切换几个都一样
且如果没有等延迟而太快按,会导致切换失败而没有音效出现
可否帮小弟看看这写法是否哪里出了问题而导致Delay
还是说Soundpool就是这样@@?
因为我有用其他吉他程式他们的Delay程度没有我这麽严重(应该说很顺
先在这谢谢各位!!!m(_ _)m
程式码: (请多利用置底文网站)
这是音效load处
public void setSP(int ch6,int ch5){
m[5] = sp[5].load(getBaseContext(),ChordIds[ch6], 0 );
m[4] = sp[4].load(getBaseContext(),ChordIds[ch5], 0 );
}
然後当我按下button时就会切换
iButton1=(ImageButton) findViewById(R.id.iButton1);
iButton1.setOnClickListener(new OnClickListener(){
public void onClick(View v){setSP( 5 , 4);}});
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.127.177.250
※ 编辑: snowoffish 来自: 122.127.177.250 (04/21 22:45)
1F:推 ericinttu:我之前用soundpoll,是即点即放音效,可能是写法不同吧!? 04/21 22:57
2F:→ ericinttu:不知道你流程里面, 哪边有这个延迟? 04/21 22:58
3F:→ snowoffish:就是在切换和弦的时候~因为我是用TouchEvent触发音效 04/21 23:00
4F:→ snowoffish:Button是要切换成其他音效後 再让我down&move触发 04/21 23:00
5F:→ snowoffish:不好意思没说清楚XDD 04/21 23:01
6F:推 ericinttu:其实我还是不懂 XDD 04/21 23:02
7F:→ snowoffish:sp[5]原本是load ChordIds[0]这音效档 04/21 23:03
8F:→ snowoffish:然後我按Button後 他会变成ChordIds[5]的音效档 04/21 23:04
9F:→ snowoffish:在这切换过程中会有延迟,声音会出不来 04/21 23:04
10F:推 sorrel20567:你是用实机去跑的吗?实机硬体比模拟器快很多 04/22 12:46
对 实机hero,我在想如果换成Desire会不会比较快
11F:推 chrisho:每次播放都再load一次吗? 可以找一下有用放在记忆体的方法 04/22 13:07
放在SDCard会比较快罗?我现在改成只用一个SonudPool延迟有比较少了!
※ 编辑: snowoffish 来自: 122.127.177.250 (04/22 17:09)
12F:→ snowoffish:看来是我幻觉=_= 04/22 19:36
13F:推 chrisho:SoundPool就是用来解决延迟的啊, 播放时不是只要play就好 04/23 08:51
14F:→ chrisho:前面如果已经 load 过,播放时不必再 load ... 04/23 08:52
15F:→ snowoffish:唔!?楼上的意思是指? 04/23 14:43
16F:→ snowoffish:让所有的音效都先Load好,不是像我这样每次都load吗? 04/23 14:44
17F:→ snowoffish:这方法我也是有想过.看来只好用这方法了 04/23 14:45
18F:推 ericinttu:原来你没先load好啊 XDD 04/23 23:03
19F:→ snowoffish:...我有先Load初始的音效,之後是再Load进去 04/23 23:29
20F:→ snowoffish:主要是再问能否改善Load的速度= = 04/23 23:30
21F:→ snowoffish:不过我已经改成全部先Load罗 所以一刚开始需要等一会 04/23 23:30
22F:→ ericinttu:一般作法是把会造成delay的部份先载入到memory,当然记忆 04/24 01:17
23F:→ ericinttu:体不够或有限的作法的话, 还要再仔细研究下去. 04/24 01:18
24F:→ ericinttu:我也没什麽相关经验, 看神人们会给什麽hint. 04/24 01:18
25F:→ snowoffish:所以就是用sdcard罗?? 04/24 20:48
26F:推 chrisho:我意思是, 只要load一次,之後都读memory就好啦, 不一定要 04/26 13:23
27F:→ chrisho:事先全部load完, 万一有100个音效, 你要全load也不好吧 04/26 13:24