gpt4 book ai didi

swift - 类型 AVCaptureDevice 不符合协议(protocol)序列

转载 作者:行者123 更新时间:2023-11-28 07:47:32 24 4
gpt4 key购买 nike

我正在尝试打开前置摄像头以进行自拍并将其保存为输出静止图像,以便用户能够在提交前看到照片。我配置的原始功能在 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 {

}
}
}

}

最佳答案

查看documentation

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

关于swift - 类型 AVCaptureDevice 不符合协议(protocol)序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50587787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com