AvcapturePotoCapturedElegate.PotoOutput (: DidFinishCapturingDeferredPhotoproxy) не называетсяIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 AvcapturePotoCapturedElegate.PotoOutput (: DidFinishCapturingDeferredPhotoproxy) не называется

Сообщение Anonymous »

Я пытаюсь сделать 24 -мегапиксельную фотографию с помощью AvFoundation. Я использую iPhone 15 Pro, на iOS 18. Согласно документации: Примечание. При поддержке 24-мегапиксельная настройка (5712, 4284) обслуживается только 24-мегапиксельной, когда выбирается в AutodeferredPhotoDeliveryEnabled.
Вот как я настраиваю свой выходной выходself.photoOutput.isAppleProRAWEnabled = self.photoOutput.isAppleProRAWSupported
self.photoOutput.maxPhotoQualityPrioritization = .quality
if #available(iOS 17.0, *) {
if self.photoOutput.isAutoDeferredPhotoDeliverySupported {
self.photoOutput.isAutoDeferredPhotoDeliveryEnabled = true
self.autoDeferredDeliveryObserver = self.photoOutput.observe(\.isAutoDeferredPhotoDeliverySupported) { [weak self] photoOutput, change in
guard let self = self, let newValue = change.newValue else { return }
print("autoDeferredDeliverySupport is now: \(newValue)")
}
}
}
self.session.addOutput(self.photoOutput)
if let dimensions = videoDevice.activeFormat.supportedMaxPhotoDimensions.last {
self.photoOutput.maxPhotoDimensions = dimensions // (5712, 4284) when debugging
}
< /code>
И вот как я настраиваю настройки фотографии: < /p>
let settings: AVCapturePhotoSettings
if format == .heif, photoOutput.availablePhotoCodecTypes.contains(.hevc) {
settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
} else {
settings = AVCapturePhotoSettings()
}

if let dimensions = videoDeviceInput?.device.activeFormat.supportedMaxPhotoDimensions.last {
settings.maxPhotoDimensions = dimensions // (5712, 4284) when debugging
}

if let previewType = settings.availablePreviewPhotoPixelFormatTypes.first {
settings.previewPhotoFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewType]
}
return settings
< /code>
Для обработки и снятия фотографий Я использую модифицированный процессор Photocapture Project от AVCAM Project. Он работает нормально и правильно сохраняет изображения. Но отложенный метод прокси никогда не вызывается! < /P>
func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
// works properly and saves image properly
// but only in 12mp despite the fact that settings are for 24mp
print(resolvedSettings.deferredPhotoProxyDimensions) // (0, 0)
}

func photoOutput(_ output: AVCapturePhotoOutput, didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?, error: (any Error)?) {
print("not getting called")
}
< /code>
Итак, вопрос: что я делаю не так? Как снять 24 -мегапиксельные изображения?

Подробнее здесь: https://stackoverflow.com/questions/797 ... photoproxy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»