Îmi cunosc Macbook webcam are un câmp larg de vedere. Când am deschis aplicația Quicktime și selectați meu Macbook-uri aparat de fotografiat ca intrare vad o largă frumos video de genul asta.
Acum, am o aplicatie iOS care sunt rulează folosind Mac Catalizator. Aici este de a construi o combinație eu sunt, folosind.
Atunci când am rula acest app, am obține un semnificativ trunchiate versiune a video de pe web cam.
Aici este clasa unde am înființat 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))
}
})
}
}
Și adăugați-l la ViewController astfel:
let preview = AVCaptureVideoPreviewLayer(session: session)
preview.removeFromSuperlayer()
preview.frame = self.view.bounds
self.view.layer.insertSublayer(preview, at: 0)
Rețineți că UIViewController
Eu sunt, folosind este adus în SwiftUI prin UIViewControllerRepresentable
protocol de conformitate.
Am încercat o serie de presetări și descoperirea sesiuni de parametri, inclusiv .buildInWidtAngleCamera
dar nu pot par pentru a obține pentru a arăta pe deplin rezoluția camerei? Am noroc aici, dacă am construi un nativ Mac?