Pokaż całą szerokość komory z kamery Mac po uruchomieniu aplikacji po Mac Catalyst

0

Pytanie

Wiem, że kamera mojego Macbook ma szerokie pole widzenia. Kiedy otwieram aplikację Quicktime i wybieram kamerę MacBook jako sygnału, widzę piękną szeroką transmisję video, podobną do tej.

enter image description here

Teraz mam aplikację dla systemu iOS, która uruchamiam za pomocą Mac Catalyst. Oto kombinacja zestawu, który używam.

enter image description here

Kiedy uruchamiam aplikację, dostaję znacznie przyciętą wersję strumienia wideo z kamery internetowej.

enter image description here

To klasa, w której ustawiłem 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 dodaj go do ViewController w następujący sposób:

let preview = AVCaptureVideoPreviewLayer(session: session)
preview.removeFromSuperlayer()  
preview.frame = self.view.bounds      
self.view.layer.insertSublayer(preview, at: 0)

Należy pamiętać, że UIViewController Używam tego wpisana w SwiftUI przez UIViewControllerRepresentable zgodność protokołu.

Próbowałem szereg ustawień i parametrów sesji wykrywania, w tym .buildInWidtAngleCamera ale, jak się wydaje, nie można zmusić go pokaż pełną rozdzielczość kamery? Mi tutaj nie ma szczęścia, jeśli nie stworzę go jak obecnie własną aplikację dla systemu Mac?

apple-m1 avfoundation swift video
2021-11-22 21:53:49
1

Najlepsza odpowiedź

2

Przełączyć się na Optimize interface for Mac znajduje się on pod Target>General>Deployment Info>Next To the Mac checkmark button.

Prawdopodobnie on rozpoznaje aparat jako orientacji pionowej dla ipada

2021-11-23 00:12:21

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................