【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android仿微信語(yǔ)音對(duì)講錄音功能_第1頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android仿微信語(yǔ)音對(duì)講錄音功能_第2頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android仿微信語(yǔ)音對(duì)講錄音功能_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android仿微信語(yǔ)音對(duì)講錄音功能

自微信出現(xiàn)以來(lái)取得了很好的成績(jī),語(yǔ)音對(duì)講的實(shí)現(xiàn)更加方便了人與人之間的交流。今天來(lái)實(shí)踐一下微信的語(yǔ)音對(duì)講的錄音實(shí)現(xiàn),這個(gè)也比較容易實(shí)現(xiàn)。在此,我將該按鈕封裝成為一個(gè)控件,并通過(guò)策略模式的方式實(shí)現(xiàn)錄音和界面的解耦合,以方便我們?cè)趯?shí)際情況中對(duì)錄音方法的不同需求(例如想要實(shí)現(xiàn)wav格式的編碼時(shí)我們也就不能再使用MediaRecorder,而只能使用AudioRecord進(jìn)行處理)。效果圖:實(shí)現(xiàn)思路:1.在微信中我們可以看到實(shí)現(xiàn)語(yǔ)音對(duì)講的是通過(guò)點(diǎn)按按鈕來(lái)完成的,因此在這里我選擇重新自己的控件使其繼承自Button并重寫(xiě)onTouchEvent方法,來(lái)實(shí)現(xiàn)對(duì)錄音的判斷。2.在onTouchEvent方法中,當(dāng)我們按下按鈕時(shí),首先顯示錄音的對(duì)話(huà)框,然后調(diào)用錄音準(zhǔn)備方法并開(kāi)始錄音,接著開(kāi)啟一個(gè)計(jì)時(shí)線(xiàn)程,每隔0.1秒的時(shí)間獲取一次錄音音量的大小,并通過(guò)Handler根據(jù)音量大小更新Dialog中的顯示圖片;

當(dāng)我們移動(dòng)手指時(shí),若手指向上移動(dòng)距離大于50,在Dialog中顯示松開(kāi)手指取消錄音的提示,并將isCanceled變量(表示我們最后是否取消了錄音)置為true,上移動(dòng)距離小于20時(shí),我們恢復(fù)Dialog的圖片,并將isCanceled置為false;

當(dāng)抬起手指時(shí),我們首先關(guān)閉錄音對(duì)話(huà)框,接著調(diào)用錄音停止方法并關(guān)閉計(jì)時(shí)線(xiàn)程,然后我們判斷是否取消錄音,若是的話(huà)則刪除錄音文件,否則判斷計(jì)時(shí)時(shí)間是否太短,最后調(diào)用回調(diào)接口中的recordEnd方法。

3.在這里為了適應(yīng)不同的錄音需求,我使用了策略模式來(lái)進(jìn)行處理,將每一個(gè)不同的錄音方法視為一種不同的策略,根據(jù)自己的需要去改寫(xiě)。注意問(wèn)題1.在onTouchEvent的返回值中應(yīng)該返回true,這樣才能屏蔽之后其他的觸摸事件,否則當(dāng)手指滑動(dòng)離開(kāi)Button之后將不能在響應(yīng)我們的觸摸方法。

2.不要忘記為自己的App添加權(quán)限:代碼參考RecordButton類(lèi),我們的自定義控件,重新復(fù)寫(xiě)了onTouchEvent方法Dialog布局:錄音時(shí)間太短的Toast布局:自定義的Dialogstyle,對(duì)話(huà)框樣式RecordStrategy錄音

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論