【问题标题】:Type does not conform to protocol 'AVCaptureFileOutputRecordingDelegate'类型不符合协议 'AVCaptureFileOutputRecordingDelegate'
【发布时间】:2016-04-23 16:57:56
【问题描述】:

我正在尝试使用 AVCaptureMovieFileOutput.startRecordingToOutputFileURL 将音频录制到文件中,并且该函数的语法要求输入“AVCaptureFileOutputRecordingDelegate”类型的变量。我从这个网站看到的所有帮助都说你需要让一个类成为 AVCaptureFileOutputRecordingDelegate 和 NSObject 的扩展。

问题是,我总是收到错误:Type 'AVRecordDevices' does not conform to protocol 'AVCaptureFileOutputRecordingDelegate'

我该如何解决?

附:如果在这种情况下意味着什么,我正在为 OS X 开发。

【问题讨论】:

    标签: swift macos audio compiler-errors


    【解决方案1】:

    Swift 4.0 的更新答案:

    Apple documentation.

    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!) { }
    

    【讨论】:

      【解决方案2】:

      这意味着您没有在视图控制器中实现正确的方法:

      通过仔细查看苹果的文档,您会发现至少要有这个:

        func captureOutput(captureOutput: AVCaptureFileOutput!, didFinishRecordingToOutputFileAtURL outputFileURL: NSURL!, fromConnections connections: [AnyObject]!, error: NSError!)
          {
          }
      

      https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVCaptureFileOutputRecordingDelegate_Protocol/

      【讨论】:

      • 谢谢!我没有注意到文档中的那个函数!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      相关资源
      最近更新 更多