錄音,聲音的採集,通常有兩種實現辦法,一是使用AVAudioRecorder,一是使用AudioUnit。若是隻是簡單的錄音,使用AVAudioRecorder就能夠了,若是想更靈活地處理剛錄到的聲音數據,那應該使用AudioUnit。微信
小程這裏記錄AVAudioRecorder的使用。函數
AVAudioRecorder錄音時,直接保存成文件,而寫文件就是音頻編碼的過程,因此,在啓動錄音前,就應該設置後編碼的參數(包括編碼格式、採樣率、位深、通道數等)。編碼
能夠這樣設置:spa
這裏編碼成aac格式。對於多媒體的知識,讀者能夠關注「廣州小程」微信公衆號,並在「多媒體」菜單項內查閱文章。繼承
代碼以下:接口
調用上很簡單,alloc一個AVAudioRecorder,指定錄音保存路徑跟錄音設置,而後調用record函數就啓動錄音了。圖片
啓動錄音後,應該響應AVAudioRecorder的回調函數:回調函數
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag源碼
AVAudioRecorder在錄音結束時會調用這個函數,實現這個函數的類須要繼承協議AVAudioRecorderDelegate。it
通常在錄音時,須要在界面上顯示能量(分貝)的變化,而AVAudioRecorder提供了獲取能量的接口。
能夠這樣取能量變化:
在取能量以前,應該先設置AVAudioRecorder的meteringEnabled屬性爲YES(好比在建立AVAudioRecorder時設置):
newRecorder.meteringEnabled = YES;
在拿到能量的值後,能夠根據這個值來劃分等級,從而在界面上顯示不一樣的圖片,好比:
能量的等級顯示,這裏給出其效果的一個截圖:
感謝各位的關注,後面我會把IOS客戶端源碼、API源碼呈獻給你們,完整的示例你們能夠暫時到AppStore下載安裝「知音」。