【Android】【錄音】Android錄音--AudioRecord、MediaRecorder


    Android提供了兩個API用於實現錄音功能:android.media.AudioRecord、android.media.MediaRecorder。

    網上有很多談論這兩個類的資料。現在大致總結下:

1、AudioRecord

主要是實現邊錄邊播(AudioRecord+AudioTrack)以及對音頻的實時處理(如會說話的湯姆貓、語音)

優點:語音的實時處理,可以用代碼實現各種音頻的封裝

缺點:輸出是PCM語音數據,如果保存成音頻文件,是不能夠被播放器播放的,所以必須先寫代碼實現數據編碼以及壓縮

示例:

使用AudioRecord類錄音,並實現WAV格式封裝。錄音20s,輸出的音頻文件大概為3.5M左右(已寫測試代碼)

2、MediaRecorder

已經集成了錄音、編碼、壓縮等,支持少量的錄音音頻格式,大概有.aac(API = 16) .amr .3gp

優點:大部分以及集成,直接調用相關接口即可,代碼量小

缺點:無法實時處理音頻;輸出的音頻格式不是很多,例如沒有輸出mp3格式文件

示例:

使用MediaRecorder類錄音,輸出amr格式文件。錄音20s,輸出的音頻文件大概為33K(已寫測試代碼)

3、音頻格式比較

WAV格式:錄音質量高,但是壓縮率小,文件大

AAC格式:相對於mp3,AAC格式的音質更佳,文件更小;有損壓縮;一般蘋果或者Android SDK4.1.2(API 16)及以上版本支持播放

AMR格式:壓縮比比較大,但相對其他的壓縮格式質量比較差,多用於人聲,通話錄音

至於常用的mp3格式,使用MediaRecorder沒有該視頻格式輸出。一些人的做法是使用AudioRecord錄音,然后編碼成wav格式,再轉換成mp3格式

 

    再貼上一些測試工程。

功能描述:

1、點擊“錄音WAV文件”,開始錄音。錄音完成后,生成文件/sdcard/FinalAudio.wav

2、點擊“錄音AMR文件”,開始錄音。錄音完成后,生成文件/sdcard/FinalAudio.amr

3、點擊“停止錄音”,停止錄音,並顯示錄音輸出文件以及該文件大小。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com