Eu sei que o meu Macbook webcam tem um amplo campo de visão. Quando eu abrir o Quicktime aplicativo e selecione meus MacBooks câmara como a entrada de eu ver um bom ampla feed de vídeo como este.
Agora, eu tenho um aplicativo para iOS que eu estou correndo usando o Mac Catalisador. Aqui está a construir combinação que estou usando.
Quando eu executar esse aplicativo eu obter uma significativa versão cortada do feed de vídeo a partir da web cam.
Aqui é a sala de aula, onde eu configurar o AVCaptureSession
import Foundation
import AVFoundation
class BasicCamera: ObservableObject {
@Published var authorizationState: AVAuthorizationStatus = .notDetermined
let session = AVCaptureSession()
init() {
guard let device = AVCaptureDevice.default(for: .video) else {
fatalError("Could not make capture device.")
}
guard let input = try? AVCaptureDeviceInput(device: device) else {
fatalError("Could not make input")
}
session.beginConfiguration()
session.addInput(input)
session.commitConfiguration()
session.startRunning()
}
public func requestCameraPermission() async -> AVAuthorizationStatus {
return await withCheckedContinuation({ continuation in
AVCaptureDevice.requestAccess(for: .video) { [unowned self] didComplete in
self.authorizationState = AVCaptureDevice.authorizationStatus(for: .video)
continuation.resume(with: .success(self.authorizationState))
}
})
}
}
E adicioná-lo para o ViewController como este:
let preview = AVCaptureVideoPreviewLayer(session: session)
preview.removeFromSuperlayer()
preview.frame = self.view.bounds
self.view.layer.insertSublayer(preview, at: 0)
Observe que o UIViewController
Eu estou usando é trazido para SwiftUI via UIViewControllerRepresentable
protocolo de conformidade.
Eu tentei uma série de presets e sessões de descoberta parâmetros, incluindo .buildInWidtAngleCamera
mas parece que não pode ficar-lhe para mostrar a completa resolução da câmera? Eu estou fora de sorte aqui, a menos que eu construí-lo como um Aplicativo nativo do Mac?