首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVCaptureMovieFileOutput -录制连续的视频剪辑

AVCaptureMovieFileOutput -录制连续的视频剪辑
EN

Stack Overflow用户
提问于 2015-09-27 07:56:01
回答 1查看 1.1K关注 0票数 3

我想用一系列流畅的、可变长度的剪辑来录制视频/音频。也就是说,vid1.mp4和vid2.mp4应该无缝连接在一起,或者大部分是无缝连接。

我目前的问题是,我似乎不能立即切换文件而不出现错误。

问题的症结在于:

代码语言:javascript
复制
func recordNewClip() {
    let file = self.outputUrl()
    let filePath = file!.path!
    try? NSFileManager.defaultManager().removeItemAtPath(filePath)
    movieOutput!.stopRecording()
    movieOutput!.startRecordingToOutputFileURL(file, recordingDelegate: self)
}

如果我不调用stopRecording,我会得到错误,如果我调用了stopRecording,只会记录随机的视频剪辑;大多数记录都会失败。

如何使用AVFoundation捕获连续的视频剪辑?

EN

回答 1

Stack Overflow用户

发布于 2016-09-17 00:30:21

我们开始吧!所以,这是一个不是很多人处理的话题,所以让我给你一些帮助。

当您记录时,您有一个会话和一个输出

如果您阅读有关委托方法的apple文档,您将看到

代码语言:javascript
复制
    startRecordingToOutputFileURL

这仍然会触发

代码语言:javascript
复制
    didFinishRecordingToOutputFileAtURL

问题是您需要更新输出并从会话中添加/删除它。

所以对于swift ->

代码语言:javascript
复制
    ....
    // Remove old output
    session.removeOutput(output);
    // Create new output
    output = AVCaptureMovieFileOutput()
    if session.canAddOutput(output) {
        session.addOutput(output)
        output.startRecordingToOutputFileURL(fileDest, recordingDelegate: self.delegate)
    }  
    .... 

这将触发委托方法(委托方法!)

代码语言:javascript
复制
    func captureOutput(captureOutput: AVCaptureFileOutput!, didFinishRecordingToOutputFileAtURL outputFileURL: NSURL!, fromConnections connections: [AnyObject]!, error: NSError!) {
    let outputPath = outputFileURL.path!
    do {
        print(outputPath);
        try NSFileManager.defaultManager().removeItemAtPath(outputPath)
    } catch _ {
        print("error removing file");

    }
    do {
        try NSFileManager.defaultManager().moveItemAtPath(outputFileURL.path!, toPath: outputPath)
    } catch _ {
    print(error);
    }
}

这个想法是,你必须这样做,因为如果你停止记录,你需要创建一个新的会话,然后创建一个新的输出。这样,您只需要创建一个新的输出。

请让我知道,如果这需要任何编辑或调整,但它为我工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32803219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档