AVCapturePhotoOutput проблема с портретной ориентацией
Я пытаюсь заменить средство выбора изображений по умолчанию на AVCapturePhotoOutput в моем приложении только для портретной ориентации. Снятые фотографии должны быть в портретной ориентации и не должны зависеть от ориентации устройства. Проблема в том, что когда я фотографирую в альбомной ориентации, это именно в альбомной ориентации. Перед захватом я пробовал следующее:
let photoSettings = AVCapturePhotoSettings()
if let connection = photoOutput.connection(with: .video) {
connection.videoOrientation = .portrait
}
photoOutput.capturePhoto(with: photoSettings, delegate: self)
Я также нашел это обсуждение https://developer.apple.com/forums/thread/102884 и попробовал:
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
guard let imageData = photo.fileDataRepresentation() else {
return
}
let tempURL = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true).appendingPathComponent(UUID().uuidString)
do {
try imageData.write(to: tempURL)
let photoData = try Data(contentsOf: tempURL)
let image = UIImage(data: photoData)
onSelect?(image)
return
} catch {}
onSelect?(nil)
Но по-прежнему сохраняйте пейзажное изображение как пейзаж. Пожалуйста, проверьте, что не так в моем коде.