当我停止手动录制视频时,使用stopRecording()
实例的AVCaptureMovieFileOutput
方法,它将调用fileOutput(_:didFinishRecordingTo:from:error:)
的{{1}}委托方法。但是,当我使用AVCaptureFileOutputRecordingDelegate
自动停止视频时,将调用maxRecordedDuration
委托方法,这在developer.apple.com网站上找不到此方法文档。
还有另一种方法captureOutput(captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:)
。
在capture(_:didFinishRecordingToOutputFileAt:fromConnections:error:)
文档中,只有AVCaptureFileOutputRecordingDelegate
个方法,而与fileOutput
或captureOutput
方法无关。
有没有我可以处理输出文件的方法,在任何情况下都会被调用?这样我就可以用一种方法处理输出。
答案 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错误。