[英]Type AVCaptureDevice does not conform to protocol Sequence
我試圖打開前置攝像頭以便交談自拍並將其另存為輸出,以使用戶能夠在提交前查看圖片。 我配置的原始功能在iOS 10上已棄用。有人可以幫助您了解如何正確編寫此功能?
//OLD CODE:
let devices = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo)
for device in devices {
if device.position == AVCaptureDevicePosition.Front {
do {
let input = try AVCaptureDeviceInput(device: device as! AVCaptureDevice)
if captureSession.canAddInput(input) { ...
//NEW CODE:
let devices = AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .front)
)
for device in devices {
if device.position == AVCaptureDevice.Position.front {
do {
let input = try AVCaptureDeviceInput(device: devices)
if captureSession.canAddInput(input) {
captureSession.addInput(input)
stillImageOutput.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
if captureSession.canAddOutput(stillImageOutput) {
captureSession.add(stillImageOutput)
captureSession.startRunning()
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
previewLayer.connection?.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer)
previewLayer.bounds = cameraView.frame
previewLayer.position = CGPoint(x: cameraView.frame.width/2, y: cameraView.frame.height/2)
}
}
}
catch {
}
}
}
}
查看文檔
class func `default`(_ deviceType: AVCaptureDevice.DeviceType,
for mediaType: AVMediaType?,
position: AVCaptureDevice.Position) -> AVCaptureDevice?
因此, default
方法返回一個可選的AVCaptureDevice
。
您只需要更換
//NEW CODE:
let devices = AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .front)
)
for device in devices {
if device.position == AVCaptureDevice.Position.front {
與
//NEW CODE:
if let device = AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .front) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.