【发布时间】:2017-08-17 00:46:48
【问题描述】:
我正在关注 Youtube 上关于 CoreML 的教程:使用机器学习进行实时相机对象检测 - Brian 先生编写的 Swift 4
captureSession.sessionPreset = .photo
在这一行,错误说:
类型“字符串”没有成员“照片”。
dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
另一个错误是“自我”部分。错误是:
无法将“ViewController”类型的值转换为预期的参数类型“AVCaptureVideoDataOutputSampleBufferDelegate!”
下面是整个代码:
import UIKit
import AVFoundation
import AVKit
import Vision
class ViewController: UIViewController, AVCaptureAudioDataOutputSampleBufferDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// here is where we start up the camera
let captureSession = AVCaptureSession()
captureSession.sessionPreset = .photo
guard let captureDevice =
AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) else { return }
guard let input = try? AVCaptureDeviceInput(device:
captureDevice) else { return }
captureSession.addInput(input)
captureSession.startRunning()
let previewLayer = AVCaptureVideoPreviewLayer(session:
captureSession)
view.layer.addSublayer(previewLayer!)
previewLayer!.frame = view.frame
let dataOutput = AVCaptureVideoDataOutput()
dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
captureSession.addOutput(dataOutput)
【问题讨论】:
-
将
AVCaptureAudioDataOutputSampleBufferDelegate更改为AVCaptureVideoDataOutputSampleBufferDelegate。 -
谢谢。现在可以了。第一个错误呢?
-
首先查看
AVCaptureSession的sessionPreset属性的文档。