iOS 錄音方法

iOS 錄音功能

初始化AVAudioRecorder 對象

  • 初始化一個AVAudioRecorder 對象
    init(url: URL, settings: [String : Any]) throws

  • 參數
    1. url : 音頻文件保存路徑
    2. settings: 錄制的屬性
         * AVFormatIDKey: 音頻格式 
         * AVSampleRateKey: 采樣頻率
         * AVNumberOfChannelsKey : 音頻的通道數
         * AVLinearPCMBitDepthKey : 設置錄制音頻的每個樣點的位數
         * AVLinearPCMIsBigEndianKey : 設置錄制音頻采用高位優先的記錄格式
         * AVLinearPCMIsFloatKey : 置采樣信號的浮點數

         ....還有很多其它屬性,具體請看文檔

    3. outError : 錯誤描述

配置和控制錄音相關方法

    func prepareToRecord() -> Bool
        創建一個audio文件,準備錄制
    func record() -> Bool
        啟動或恢復錄制。
    func record(atTime time: TimeInterval) -> Bool //延遲幾秒錄制

        NSTimeInterval recordDelay = 3.0;   //must be ≥ 0
       [myAudioRecorder recordAtTime:(myAudioRecorder.deviceCurrentTime + recordDelay)];

    //duration 最長錄制時間
    func record(forDuration duration: TimeInterval) -> Bool

    func pause()  //暫停錄制
    func stop()  //暫停錄制
    func deleteRecording() -> Bool //刪除錄音文件
    var delegate: AVAudioRecorderDelegate? { get set }

    * func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, 
                                 successfully flag: Bool)
    *func audioRecorderEncodeErrorDidOccur(AVAudioRecorder, error: Error?)

例子

        let recorderSettings:[String:AnyObject] = [AVFormatIDKey : NSNumber(unsignedInt: kAudioFormatMPEG4AAC), AVSampleRateKey : 44100.0 as NSNumber, AVNumberOfChannelsKey : 2 as NSNumber, AVEncoderAudioQualityKey : AVAudioQuality.High.rawValue as NSNumber,AVEncoderBitRateKey : 320000 as NSNumber]
    
    do {
        audioRecorder = try AVAudioRecorder(URL: url, settings: recorderSettings)
        audioRecorder.delegate = self
        audioRecorder.prepareToRecord()
        
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
        
    }catch let error as NSError{
        print(error)
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容