Swift 快速捕获不同路径的视频

Swift 快速捕获不同路径的视频,swift,swift3,avfoundation,avcapturesession,Swift,Swift3,Avfoundation,Avcapturesession,我正试图用swift捕捉一段视频。我想每x秒将视频捕获到一个新文件中 这是我目前的代码: var i = 0 override func viewDidLoad() { super.viewDidLoad() if setupSession() { setupPreview() startSession() } } func setupSession() -> Bool { ... return true

我正试图用swift捕捉一段视频。我想每x秒将视频捕获到一个新文件中

这是我目前的代码:

var i = 0

override func viewDidLoad() {
    super.viewDidLoad()

    if setupSession() {
        setupPreview()
        startSession()
    }

}

func setupSession() -> Bool {

    ...

    return true
}

func startSession() {

    ...
}

func tempURL() -> URL? {
    let directory = NSTemporaryDirectory() as NSString

    if directory != "" {

        i = i+1
        old_cur_videoID = cur_videoID_system

        cur_videoID_system = "\(cur_videoID)_\(i).mp4"
        let path = directory.appendingPathComponent(cur_videoID_system)
        return URL(fileURLWithPath: path)
    }

    return nil
}


func startRecording() {


    let delayTime = DispatchTime.now() + 2
    DispatchQueue.main.asyncAfter(deadline: delayTime) {
        self.startRecording()
    }

    outputURL = tempURL()
    movieOutput.startRecording(toOutputFileURL: outputURL, recordingDelegate: self)
}
以及两个委托功能:

func capture(_ captureOutput: AVCaptureFileOutput!, didStartRecordingToOutputFileAt fileURL: URL!, fromConnections connections: [Any]!) {

}

func capture(_ captureOutput: AVCaptureFileOutput!, didFinishRecordingToOutputFileAt outputFileURL: URL!, fromConnections connections: [Any]!, error: Error!) {
    if (error != nil) {
        print("Error recording movie: \(error!.localizedDescription)")
    } else {        
        if(i > 1){
            saveOnServer()
        }   
    }
    outputURL = nil
}
如果我尝试运行代码,会收到以下错误消息:

Error recording movie: Movie recording cannot be started
有人能帮我解决我的问题吗?如果需要更多代码或某些部分不清楚,请随时询问


非常感谢

请简化您的代码,只包含相关部分。对此表示抱歉。我希望现在看起来更好。代码是否成功创建了任何文件?您的文件名不是以多个“.mp4”后缀结尾吗?我看不到您在任何地方停止录制?没有创建文件。。。