Vím, že můj Macbook je webkamera má široké zorné pole. Když jsem otevřít Quicktime aplikaci a zvolte možnost mé Macbooky kameru jako vstupní vidím pěkný široký zdroj videa, jako je tento.
Teď mám iOS aplikace, které mi běží pomocí Mac Katalyzátor. Tady je vybudovat kombinaci používám.
Když jsem se spustit tuto aplikaci jsem si výrazně zkrácená verze video z webové kamery.
Zde je třída, kde jsem nastavit 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))
}
})
}
}
A přidat ji do ViewController, jako je tento:
let preview = AVCaptureVideoPreviewLayer(session: session)
preview.removeFromSuperlayer()
preview.frame = self.view.bounds
self.view.layer.insertSublayer(preview, at: 0)
Všimněte si, že UIViewController
Používám je přivedl do SwiftUI přes UIViewControllerRepresentable
protokol shody.
Snažil jsem se řadu předvoleb a objev relace parametry, včetně .buildInWidtAngleCamera
ale nedokážu si to ukázat na plné rozlišení fotoaparátu? Mám smůlu, pokud jsem to postavit jako skutečné nativní Mac Aplikace?