【移動應(yīng)用開發(fā)技術(shù)】Android開發(fā)中播放聲音的兩種方法分析_第1頁
【移動應(yīng)用開發(fā)技術(shù)】Android開發(fā)中播放聲音的兩種方法分析_第2頁
【移動應(yīng)用開發(fā)技術(shù)】Android開發(fā)中播放聲音的兩種方法分析_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】Android開發(fā)中播放聲音的兩種方法分析

本文實例講述了Android開發(fā)中播放聲音的兩種方法。分享給大家供大家參考,具體如下:在Android中,音頻、視頻等多媒體元素的加入,使得應(yīng)用程序的用戶體驗更好??梢哉f,現(xiàn)在的手機,已經(jīng)遠(yuǎn)遠(yuǎn)不只作為通信工具,更成為娛樂、辦公的必備產(chǎn)品。Android提供了簡單的音頻API。一般大家使用的是MediaPlayer播放音頻,這也是最常見的一種播放聲音的工具。這種工具在互聯(lián)網(wǎng)上有大量的實例,因此在此只做簡單的介紹。對播放行為的控制是三個大家非常熟悉的方法:start()、stop()和pause()。通過staticMediaPlayercreate(Context,Uri)這個方法,可以獲得一個新創(chuàng)建的MediaPlayer對象。在播放過程中,有幾個可以監(jiān)聽播放過程的監(jiān)聽器,如:監(jiān)聽音頻播放結(jié)束;監(jiān)聽播放過程中的錯誤事件;當(dāng)prepare()被調(diào)用時觸發(fā)。然而,使用MediaPlayer播放時,也有一些問題。我們知道MediaPlayer在創(chuàng)建和銷毀時都會耗費大量的系統(tǒng)資源,且創(chuàng)建和銷毀的時間相對較長。此外,如果我們需要在同一時刻播放很多聲音,MediaPlayer是不支持的。因此,我們需要一個更加輕量級的聲音播放工具。Android提供了另外一種,叫做SoundPool,它適合播放那些需要反復(fù)播放,但時間較短的音效。它支持同時播放多種聲音,這些聲音在系統(tǒng)開始時會加載到列表中,按照這些聲音的id,我們可以調(diào)用這些音效。下面我們進(jìn)入一個實例看看SoundPool到底是怎么工作的。例如,現(xiàn)在在一個五子棋游戲中,我們需要在棋子落盤的時候播放一段聲音。我們可以利用SoundPool,因為它時間很短,而且需要反復(fù)播放,并且我們不希望聲音占用太大資源。先看看代碼:代碼非常簡單,第一行是聲明了一個SoundPool對象,這個一般是作為類的成員屬性出現(xiàn)的。第二行將soundPool實例化,第一個參數(shù)為soundPool可以支持的聲音數(shù)量,這決定了Android為其開設(shè)多大的緩沖區(qū),第二個參數(shù)為聲音類型,在這里標(biāo)識為系統(tǒng)聲音,除此之外還有AudioManager.STREAM_RING以及AudioManager.STREAM_MUSIC等,系統(tǒng)會根據(jù)不同的聲音為其標(biāo)志不同的優(yōu)先級和緩沖區(qū),最后參數(shù)為聲音品質(zhì),品質(zhì)越高,聲音效果越好,但耗費更多的系統(tǒng)資源。第三行,系統(tǒng)為soundPool加載聲音,第一個參數(shù)為上下文參數(shù),第二個參數(shù)為聲音的id,一般我們將聲音信息保存在res的raw文件夾下,如下圖所示。第三個參數(shù)為聲音的優(yōu)先級,當(dāng)多個聲音沖突而無法同時播放時,系統(tǒng)會優(yōu)先播放優(yōu)先級高的。第四行就是播放了,第一個參數(shù)為id,id即為放入到soundPool中的順序,比如現(xiàn)在collide.wav是第一個,因此它的id就是1。第二個和第三個參數(shù)為左右聲道的音量控制。第四個參數(shù)為優(yōu)先級,由于只有這一個聲音,因此優(yōu)先級在這里并不重要。第五個參數(shù)為是否循環(huán)播放,0為不循環(huán),-1為循環(huán)。最后一個參數(shù)為播放比率,從0.5到2,一般為1,表示正常播放。更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android開發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫操作技巧總結(jié)》、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論