【移動(dòng)應(yīng)用開發(fā)技術(shù)】android語音即時(shí)通訊之錄音、播放功能實(shí)現(xiàn)代碼_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】android語音即時(shí)通訊之錄音、播放功能實(shí)現(xiàn)代碼_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】android語音即時(shí)通訊之錄音、播放功能實(shí)現(xiàn)代碼_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】android語音即時(shí)通訊之錄音、播放功能實(shí)現(xiàn)代碼

在android中,實(shí)現(xiàn)錄音與語音播放的功能算是比較簡單的,但是作為參考,還是很有必要將語音相關(guān)的知識(shí)做一個(gè)簡要的記錄。首先,在android中,支持錄音支持兩種方式。主要包括:字節(jié)流模式和文件流模式。用文件流模式進(jìn)行錄音操作比較簡單,而且相對(duì)來說,因?yàn)槠浞庋b性比較好,錄制下的文件也會(huì)比較小。但是相對(duì)于文件流模式,就沒有字節(jié)流模式那么靈活,但是想要用好字節(jié)流模式還是需要下一點(diǎn)功夫的。下面開始介紹文件流模式的語音操作:文件流模式我們來看錄音部分的實(shí)現(xiàn),首先我們實(shí)現(xiàn)開始錄音的部分:

在正式編碼之前,還是需要對(duì)其進(jìn)行一個(gè)簡要的說明。一般來說,錄音功能的實(shí)現(xiàn)是在jin層,而在這一層中,是用單線程實(shí)現(xiàn)的。如果我們?cè)诰幋a的對(duì)錄音api進(jìn)行多線程操作,會(huì)導(dǎo)致程序直接閃退,并且我們是無法在java層對(duì)其異常進(jìn)行捕獲的。所以,我們必須使用單線程以保證錄音的正常運(yùn)行。

一般來說,開始錄音的步驟也就三個(gè),代碼如下:接下來我們來看看上述三個(gè)方法的實(shí)現(xiàn):

實(shí)現(xiàn)是釋放相關(guān)資源的方法releaseRecord:其中的mMediaRecorder的MediaRecorder的全局變量。

接下來是真正實(shí)現(xiàn)開始錄音的實(shí)現(xiàn)邏輯doStartRecord()這一部分代碼比較多,但是關(guān)鍵部分我都給出了注釋,相信理解起來也不算難吧。這一部分我們實(shí)現(xiàn)的主要是在sdcrad根目錄下新建一個(gè)voice的目錄,然后在新建一個(gè)以==.m4a==為后綴名的文件。在配置mAudioRecord的相關(guān)參數(shù)后,將收集到的錄音存放到之前的文件中。如果一切都順利的話,就返回true,表示開始錄音成功。最后就是提示用戶錄音實(shí)現(xiàn)的邏輯recordFail這里的邏輯比較簡單,但是值得注意的是,因?yàn)槲覀冮_始錄音方法是在一個(gè)非主線程的線程中執(zhí)行的,所以我們需要借助hander來實(shí)現(xiàn)界面提示的效果。這里的mHander是一個(gè)局部變量,其初始化放在OnCreate()方法中。

mHandler=newHandler(Looper.getMainLooper());

綜上,開始錄音的所有邏輯已經(jīng)全部實(shí)現(xiàn)。接下來實(shí)現(xiàn)的是結(jié)束錄音的實(shí)現(xiàn)邏輯:

主題的邏輯如下:這里的doStopRecord實(shí)現(xiàn)邏輯如下:其實(shí)我們實(shí)現(xiàn)停止錄音的邏輯也很簡單,首先調(diào)用mMediaRecorder.stop();停止錄音,然后對(duì)錄音時(shí)間是否大于3s進(jìn)行判斷,若大于3s,則表示錄音有效,提示用戶,錄音成功。

綜上,我們文件流的錄音的所有代碼已經(jīng)實(shí)現(xiàn)完畢。接下來我們實(shí)現(xiàn)對(duì)其進(jìn)行播放。如果需要參考全部的代碼,請(qǐng)戳這里。整體來說,基于文件的錄音是比較容易實(shí)現(xiàn)的。下面介紹如何通過字節(jié)流模式實(shí)現(xiàn)錄音。字節(jié)流模式錄音開始錄音:主要邏輯startRecord2()的實(shí)現(xiàn)停止錄音的doStopRecord()實(shí)現(xiàn):對(duì)其中相關(guān)參數(shù)的說名:接下來,實(shí)現(xiàn)的是對(duì)其字節(jié)流模式

溫馨提示

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

評(píng)論

0/150

提交評(píng)論