IOS 4 & 5'te sağlanan AVFoundation çerçevesini kullanarak bir kamera uyguladım, ancak tamamlama işleyici bloğunun hiçbir zaman çağrılmadığı captureStillImageAsynchronouslyFromConnection:completionHandler:
işleviyle tutarsız bir sorun yaşıyor. Deklanşör sesi patlamaz ve önizleme bu durumda donar.iOS AVFoundation captureStillImageAsynchronouslyFromConnection: completionHandler: Süresiz Asılı
Hem Apple (WWDC 2010 & 2011 videoları) hem de Apple olmayan kılavuzları (blog ve SO gönderileri), fotoğraf çözünürlüğünde sabit bir görüntü yakalamayı çok az iyileştirme veya iyileştirme olmadan uyguladı. Xzx47 koşullarında tutarlı bir şekilde yeniden üretim yapabildim:
- Eğer flaşı
AVCaptureFlashModeAuto
olarak ayarlıyorum ve düşük ışıkta fotoğraf çekersem tamamlanma bloğunu asar ve hiç çalıştırmaz. Flaş patlar, ancak deklanşör sesi duyulmaz. Aynı kodla, deklanşör sesinin patladığı, flaşın olmadığı ve tamamlama bloğunun çalıştığı normal ışıkta fotoğraf çekebiliyorum. flashMode
değerini ayarlamam veya kapalı olarak ayarlamam gerekirse, bazı fotoğraflar çekebilirim, ancak küçük bir sayıdan sonra (genellikle 1 ile 5 arasında), tamamlama bloğu durur. Açıklama için bir senaryo olabilir:- Bir fotoğraf çekin ve onay ekranında görüntüle
- Fotoğraf ekranına geri dönün
- Tekrar 1 & 2 tekrarlayın
- Bir fotoğraf çekin ve fotoğrafı kilitleyin tamamlama bloğundan önce.
[stillImageOutput isCapturingStillImage]
kontrol ederken bile, yanlış dönmeye devam edecek vecaptureStillImageAsynchronouslyFromConnection
- fonksiyonunu çalıştırmaya devam edecek. Başka bir uygulamaya geçersem, telefonu kilitle, diğer bazı işlemleri gerçekleştir. uygulamada, veya 'Take Photo' düğmesine bir milyon kez bir hata döndürmek için tamamlama bloğunu alabiliyorum. Hangi eyleme göre farklıdırlar. Ortak olanları 11800, 11801 ve 11830'dur. Asmakla ilgisiz gibi görünüyorlar.
- Test telefonumuzu (iPhone 4 GSM) eninde sonunda işleyip işlemeyeceğini görmek için bir saatliğine bekledim. Nafile.
Uygulamam
Arabirim bir ViewController'da ve tüm AVFoundation öğelerini ele almak için ayrı bir sınıfta ele aldım. AVFoundation malzemelerini ele alan ayrı sınıfın örnek değişkeni ViewController'da. Örnek uygulamalardan farklı, ama neden bu tür ara sıra bir hataya neden sebep olduğunu anlamıyorum.
Kaybolabileceğim bir şey olup olmadığını, bir mülkün ya da bir çalışmayla ilgili bilinen bir sorunun olup olmadığını bilmek isterim.
Teşekkürler.
(Benzer bir gönderi gördüm, fakat cevapların hiçbiri sorunumu çözemedi. Uygulamada Photo res'e ihtiyacım var. Referans için: iPhone SDK 4 AVFoundation - How to use captureStillImageAsynchronouslyFromConnection correctly?)