Показывать всю ширину камеры с камеры Mac при запуске приложения через Mac Catalyst

0

Вопрос

Я знаю, что веб-камера моего Macbook имеет широкое поле зрения. Когда я открываю приложение Quicktime и выбираю камеру MacBook в качестве входного сигнала, я вижу красивую широкую видеопередачу, подобную этой.

enter image description here

Теперь у меня есть приложение для iOS, которое я запускаю с помощью Mac Catalyst. Вот комбинация сборки, которую я использую.

enter image description here

Когда я запускаю это приложение, я получаю значительно обрезанную версию видеопотока с веб-камеры.

enter image description here

Вот класс, в котором я настроил 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))
            }
        })
    }
    
}

И добавьте его в ViewController следующим образом:

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

Обратите внимание, что UIViewController Я использую это, введенное в SwiftUI через UIViewControllerRepresentable соответствие протоколу.

Я перепробовал ряд настроек и параметров сеансов обнаружения, включая .buildInWidtAngleCamera но, похоже, не удается заставить его показывать полное разрешение камеры? Мне здесь не повезло, если я не создам его как настоящее собственное приложение для Mac?

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

Лучший ответ

2

Переключиться на Optimize interface for Mac он находится под Target>General>Deployment Info>Next To the Mac checkmark button.

Вероятно, он идентифицирует камеру как портретную для iPad

2021-11-23 00:12:21

На других языках

Эта страница на других языках

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