Swift - 保存录音

时间:2014-11-12 11:53:59

标签: swift xcode6 avfoundation avaudiorecorder

如果有人可以帮助我,我将非常感激。

我想录制音频,然后将其显示在桌面视图上。

我有录音部分

  func setupRecorder() {
    var format = NSDateFormatter()
    format.dateFormat="yyyy-MM-dd-HH-mm-ss"
    var currentFileName = nameTextfield.text
    println(currentFileName)

    var dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    var docsDir: AnyObject = dirPaths[0]
    var soundFilePath = docsDir.stringByAppendingPathComponent(currentFileName)
    soundFileURL = NSURL(fileURLWithPath: soundFilePath)
    let filemanager = NSFileManager.defaultManager()
    if filemanager.fileExistsAtPath(soundFilePath) {
        // probably won't happen. want to do something about it?
        println("sound exists")
    }

    var recordSettings = [
        AVFormatIDKey: kAudioFormatAppleLossless,
        AVEncoderAudioQualityKey : AVAudioQuality.Max.toRaw(),
        AVEncoderBitRateKey : 320000,
        AVNumberOfChannelsKey: 2,
        AVSampleRateKey : 44100.0
    ]
    var error: NSError?
    recorder = AVAudioRecorder(URL: soundFileURL!, settings: recordSettings, error: &error)
    if let e = error {
        println(e.localizedDescription)
    } else {
        recorder.delegate = self
        recorder.meteringEnabled = true
        recorder.prepareToRecord() // creates/overwrites the file at soundFileURL
    }` 

我正在使用一个由2个属性组成的模型。(标题“字符串”和媒体“录制”)

无法保存音频(NSUrl)并将其显示在tableview上。

我是菜鸟,你可以看到,任何帮助都会很棒!

由于

1 个答案:

答案 0 :(得分:1)

您很可能需要创建会话:

    var session=AVAudioSession.sharedInstance()
    session.setCategory(AVAudioSessionCategoryPlayAndRecord,error:nil)