美文网首页ios
iOS 录音方法

iOS 录音方法

作者: Maggie的小蜗居 | 来源:发表于2016-09-09 18:08 被阅读452次

    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)
        }
    

    相关文章

      网友评论

        本文标题:iOS 录音方法

        本文链接:https://www.haomeiwen.com/subject/laaeettx.html