為程序的按鈕添加按鍵聲音能更好的親和用戶,產(chǎn)生更好的使用體驗(yàn),下面就是為按鍵添加聲音的方法:
public class MainActivity extends Activity { private Button mButton01; private SoundPool sp;//聲明一個(gè)SoundPool private int music;//定義一個(gè)整型用load();來(lái)設(shè)置suondID @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton01=(Button)findViewById(R.id.mButton01); sp= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);//第一個(gè)參數(shù)為同時(shí)播放數(shù)據(jù)流的最大個(gè)數(shù),第二數(shù)據(jù)流類型,第三為聲音質(zhì)量 music = sp.load(this, R.raw.start, 1); //把你的聲音素材放到res/raw里,第2個(gè)參數(shù)即為資源文件,第3個(gè)為音樂的優(yōu)先級(jí) mButton01.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { sp.play(music, 1, 1, 0, 0, 1); } } } } 在實(shí)現(xiàn)的過程中,我發(fā)現(xiàn)不同的Android機(jī)器對(duì)聲音資源文件的格式要求不同。
當(dāng)聲音資源文件格式為wma時(shí),Android虛擬機(jī)上測(cè)試,按鍵可以發(fā)出聲音。
在真機(jī)上測(cè)試(魅族M9),logcat顯示如下:
Unable to load sample: (null)
W/SoundPool sample 1 not READY
按下按鍵并沒有聲音。
查找資料發(fā)現(xiàn),在使用SoundPool時(shí),不同的機(jī)器對(duì)文件格式要求不同。
于是將資源文件轉(zhuǎn)為mp3格式類型,但是測(cè)試發(fā)現(xiàn),這次的情況恰恰相反,即真機(jī)可以播放,虛擬機(jī)不行。
想到之前所做項(xiàng)目中,聲音資源的格式為ogg,沒有出現(xiàn)過類似問題。果斷轉(zhuǎn)換、進(jìn)行測(cè)試,真機(jī)、虛擬機(jī)都可以啦!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注