【问题标题】:Can't stop audioRecorder无法停止录音机
【发布时间】:2015-06-19 10:40:49
【问题描述】:

下面是部分代码:

类 AudioRecorderController: UIViewController, AVAudioRecorderDelegate {

var audioRecorder: AVAudioRecorder?

func audioRecordingPath() -> NSURL {

    let fileManager = NSFileManager()

    let documentsFolderUrl = fileManager.URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false, error: nil)

    return documentsFolderUrl!.URLByAppendingPathComponent("Recording.m4a")

}


func audioRecordingSettings() -> NSDictionary {...}

func startRecordingAudio() {

    var error: NSError?

    let audioRecordingURL = self.audioRecordingPath()

    audioRecorder = AVAudioRecorder(URL: audioRecordingURL, settings: audioRecordingSettings() as [NSObject: AnyObject], error: &error)

    if let recorder = audioRecorder {

        recorder.delegate = self

        if recorder.prepareToRecord() && recorder.record() {

            println("Capture Succeed!")

            let delayInSeconds = 5.0
            let delayInNanoSeconds = dispatch_time(DISPATCH_TIME_NOW, Int64(delayInSeconds * Double(NSEC_PER_SEC)))
            dispatch_after(delayInNanoSeconds, dispatch_get_main_queue(), {
                [weak self] in
                self!.audioRecorder!.stop()
                //It breaks here. 
                })

        } 
    }
}

它在控制台中打印“捕获成功”,然后因错误“在展开可选值时意外发现 nil”而崩溃。 最后一行代码有什么问题?

【问题讨论】:

    标签: ios xcode swift


    【解决方案1】:

    你尝试过替换

    self!.audioRecorder!.stop()

    使用解包常量

    recorder.stop()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2022-06-24
      • 1970-01-01
      相关资源
      最近更新 更多