一、播放聲音SoundPool
成都創(chuàng)新互聯(lián)聯(lián)系熱線:028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)頁制作領(lǐng)域十余年,包括玻璃貼膜等多個(gè)領(lǐng)域擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián),為網(wǎng)站錦上添花。
SoundPool播放短的音效,不能播放歌曲
可以用soundpool,用soundpool可以播一些短的反應(yīng)速度要求高的聲音,
比如游戲中的爆破聲,而mediaplayer適合播放長點(diǎn)的。
SoundPool載入音樂文件使用了獨(dú)立的線程,不會阻塞UI主線程的操作, SoundPool類支持同時(shí)播放多個(gè)音效,這對于游戲來說是十分必要的,而MediaPlayer類是同步執(zhí)行的只能一個(gè)文件一個(gè)文件的播放。
實(shí)例:
sp=new SoundPool(1,AudioManager.STREAM_MUSIC,0);
加載:
soundId =sp.load(this, R.raw.note1, 1);
播放,可設(shè)置慢速、快速、頻率高低等
sp.play(soundId, 1, 1, 0, 0, 2.0f);
二、播放聲音MediaPlay
MediaPlayer可播放長的聲音,可后臺播放
創(chuàng)建:
mp= MediaPlayer.create(this,R.raw.song);
釋放:
mp.release();
相關(guān)資源準(zhǔn)備、該下載就下載
mp.prepare();
播放:
mp.start();
三、錄音MediaRecord
寫入外部存儲的權(quán)限:
錄音權(quán)限:
創(chuàng)建目錄:
File dir=new File(Environment.getExternalStorageDirectory(),"sonunds");
if(!dir.exists())
{
dir.mkdir();//創(chuàng)建目錄
}
創(chuàng)建文件:
File soundFile=new File(dir,System.currentTimeMillis()+".amr");
if(!soundFile.exists())
{
try//捕獲一個(gè)異常
{
soundFile.createNewFile();
}
catch(IOException e)
{
e.printStackTrace();
}
}
指定輸出
mr=new MediaRecorder();
mr.setOutputFile(soundFile.getAbsolutePath());/
準(zhǔn)備并開始錄制:
mr.prepare();
mr.start();
停止錄制:
mr.stop();
案例分析:
界面,四個(gè)按鈕: