Ios 类型';绳子';没有成员';照片';
我正在关注Youtube上关于CoreML的教程:机器学习的实时摄像机目标检测——Brian先生的Swift 4Ios 类型';绳子';没有成员';照片';,ios,swift,Ios,Swift,我正在关注Youtube上关于CoreML的教程:机器学习的实时摄像机目标检测——Brian先生的Swift 4 captureSession.sessionPreset = .photo 在这一行中,错误显示: 类型“String”没有成员“photo” 另一个错误是“自我”部分。错误是: 无法将“ViewController”类型的值转换为预期的参数类型“AVCaptureVideoDataOutputSampleBufferDelegate!” 以下是全部代码: import UIKit
captureSession.sessionPreset = .photo
在这一行中,错误显示:
类型“String”没有成员“photo”
另一个错误是“自我”部分。错误是:
无法将“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)
我想你已经得到了第二个错误的答案,第一个错误用下面的替换错误行 SWIFT 3
captureSession.sessionPreset = AVCaptureSessionPresetPhoto
SWIFT 4
captureSession.sessionPreset = AVCaptureSession.Preset.photo
将
AVCaptureAudioDataOutputSampleBufferDelegate
更改为AVCaptureVideoDataOutputSampleBufferDelegate
。谢谢。现在可以了。第一个错误如何?首先,请查看AVCaptureSession
的sessionPreset
属性的文档。请在回答中的两行之间切换,上面是swift 4
captureSession.sessionPreset = AVCaptureSession.Preset.photo