停止录制视频后调用代表方法

时间:2018-06-20 07:11:10

标签: swift avcapture avcapturemoviefileoutput

当我停止手动录制视频时,使用stopRecording()实例的AVCaptureMovieFileOutput方法,它将调用fileOutput(_:didFinishRecordingTo:from:error:)的{​​{1}}委托方法。但是,当我使用AVCaptureFileOutputRecordingDelegate自动停止视频时,将调用maxRecordedDuration委托方法,这在developer.apple.com网站上找不到此方法文档。

还有另一种方法captureOutput(captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:)

capture(_:didFinishRecordingToOutputFileAt:fromConnections:error:)文档中,只有AVCaptureFileOutputRecordingDelegate个方法,而与fileOutputcaptureOutput方法无关。

有没有我可以处理输出文件的方法,在任何情况下都会被调用?这样我就可以用一种方法处理输出。

1 个答案:

答案 0 :(得分:0)

我不确定这可能是swift-api翻译错误。某些AVFoundation API具有奇怪的obj-c来快速分配API。

来自头文件AVCaptureFileOutputRecordingDelegate具有:

- (void)captureOutput:(AVCaptureFileOutput *)output didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray<AVCaptureConnection *> *)connections error:(nullable NSError *)error;

Swift API对应项是:

func fileOutput(_ output: AVCaptureFileOutput, 
       didFinishRecordingTo outputFileURL: URL, 
       from connections: [AVCaptureConnection], 
      error: Error?)

我注意到两者都与您的评论不同。 SDK更新可能会发生Swift api更正。我建议您检查SDK目录是否为SDK错误。