我正在尝试使用AVCaptureMovieFileOutput.startRecordingToOutputFileURL将音频录制到文件中,并且该函数的语法要求输入“AVCaptureFileOutputRecordingDelegate”类型的变量。我从这个站点看到的所有帮助都说你需要把一个类作为AVCaptureFileOutputRecordingDelegate和NSObject的扩展。
问题是,我总是得到错误:类型'AVRecordDevices'不符合协议'AVCaptureFileOutputRecordingDelegate'
我该如何解决?
P.S。我正在为OS X开发,如果这意味着在这种情况下的任何事情。
答案 0 :(得分:6)
更新了Swift 4.0的答案:
import AVFoundation
extension ViewController: AVCaptureFileOutputRecordingDelegate {
func fileOutput(_ output: AVCaptureFileOutput,
didFinishRecordingTo outputFileURL: URL,
from connections: [AVCaptureConnection],
error: Error?) {
// Handle output
}
}
Swift 3.0的原始答案:
func capture(_ captureOutput: AVCaptureFileOutput!,
didFinishRecordingToOutputFileAt outputFileURL: URL!,
fromConnections connections: [Any]!,
error: Error!) { }
答案 1 :(得分:5)
这意味着您没有在视图控制器中实现正确的方法:
通过仔细研究一下苹果的文档,你会发现必须至少有这个:
func captureOutput(captureOutput: AVCaptureFileOutput!, didFinishRecordingToOutputFileAtURL outputFileURL: NSURL!, fromConnections connections: [AnyObject]!, error: NSError!)
{
}