1. 程式人生 > >iOS開發簡記(4):錄音AVAudioRecorder

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

fail pst 記錄 通道 cdn amp enabled 廣州 指定

錄音,聲音的采集,一般有兩種實現辦法,一是使用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