作者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