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