2
我下面讲CoreML在Youtube上观看教程:实时Camera对象检测与机器学习 - 布莱恩先生键入'String!'没有成员“照片”
captureSession.sessionPreset = .photo
斯威夫特4在这一行,错误说:
类型“String”没有成员'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'。 – rmaddy
谢谢。它现在有效。第一个错误怎么样? – Harry
首先查看'AVCaptureSession'的'sessionPreset'属性的文档。 – rmaddy