15.Swift 录制音频

来源:互联网 发布:网络推广学校 编辑:程序博客网 时间:2024/06/15 15:48

15.Swift 录制音频

  • Swift 录制音频


我们知道,AVAudioPlayer可以播放音频。但是与之对应的AVAudioRecorder是可以录制音频的。


AVAudioRecorder构造方法
AVAudioRecorder.init(URL url: NSURL, settings: [String : AnyObject]) throws

创建文件,准备自动记录
AVAudioRecorder.prepareToRecord() -> Bool

开始记录
AVAudioRecorder.record() -> Bool

停止记录,并关闭文件
AVAudioRecorder.stop()

    var avRec:AVAudioRecorder!    var avUrl:NSURL!    var avPlayer:AVAudioPlayer!    // 初始化AVAudioRecorder    func initAVAudioRecorder(){        self.avUrl = (NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.AllDomainsMask)[0] as NSURL).URLByAppendingPathComponent("record")        NSLog("\(self.avUrl)");        // 录音文件配置        let recordSettings = [            AVEncoderAudioQualityKey: AVAudioQuality.Max.rawValue,            AVEncoderBitRateKey: 320000,            AVNumberOfChannelsKey: 2,            AVSampleRateKey: 44100.0        ]        do{            // 实例化AVAudioRecorder            try self.avRec = AVAudioRecorder(URL: avUrl, settings: recordSettings as! [String : AnyObject])            // 创建文件,准备记录。会自动记录            self.avRec.prepareToRecord()        }catch let error as NSError{            NSLog("\(error.localizedDescription)")        }catch {            NSLog("Other error")        }    }    // 开始录音    @IBAction func startRecord(sender: AnyObject) {        NSLog("start")        // 开始记录        self.avRec.record()    }    // 结束录音    @IBAction func stopRecord(sender: AnyObject) {        NSLog("stop")        // 停止记录,并关闭文件        self.avRec.stop()    }    // 播放录音    @IBAction func playRecord(sender: AnyObject) {        NSLog("playRecord")        do{            try self.avPlayer = AVAudioPlayer(contentsOfURL: self.avUrl)        }catch let error as NSError{            NSLog("\(error.localizedDescription)")        }catch {            NSLog("Other error")        }        self.avPlayer.prepareToPlay()        avPlayer.play()    }
0 0
原创粉丝点击