iOS開發簡記(4):錄音AVAudioRecorder

錄音,聲音的採集,通常有兩種實現辦法,一是使用AVAudioRecorder,一是使用AudioUnit。若是隻是簡單的錄音,使用AVAudioRecorder就能夠了,若是想更靈活地處理剛錄到的聲音數據,那應該使用AudioUnit。微信

小程這裏記錄AVAudioRecorder的使用。函數

(1)初始化

AVAudioRecorder錄音時,直接保存成文件,而寫文件就是音頻編碼的過程,因此,在啓動錄音前,就應該設置後編碼的參數(包括編碼格式、採樣率、位深、通道數等)。編碼

能夠這樣設置:
spa

這裏編碼成aac格式。對於多媒體的知識,讀者能夠關注「廣州小程」微信公衆號,並在「多媒體」菜單項內查閱文章。繼承

(2)啓動錄音

代碼以下:
接口

調用上很簡單,alloc一個AVAudioRecorder,指定錄音保存路徑跟錄音設置,而後調用record函數就啓動錄音了。圖片

(3)錄音回調

啓動錄音後,應該響應AVAudioRecorder的回調函數:回調函數

- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag源碼

AVAudioRecorder在錄音結束時會調用這個函數,實現這個函數的類須要繼承協議AVAudioRecorderDelegate。it

(4)錄音能量變化

通常在錄音時,須要在界面上顯示能量(分貝)的變化,而AVAudioRecorder提供了獲取能量的接口。

能夠這樣取能量變化:

在取能量以前,應該先設置AVAudioRecorder的meteringEnabled屬性爲YES(好比在建立AVAudioRecorder時設置):

newRecorder.meteringEnabled = YES;

在拿到能量的值後,能夠根據這個值來劃分等級,從而在界面上顯示不一樣的圖片,好比:

能量的等級顯示,這裏給出其效果的一個截圖:

感謝各位的關注,後面我會把IOS客戶端源碼、API源碼呈獻給你們,完整的示例你們能夠暫時到AppStore下載安裝「知音」。

相關文章
相關標籤/搜索