Próbuję osadzić prosty widok w mojej aplikacji na iPhone'a, aby wykonać szybkie migawki. Wszystko działa dobrze, ale mam pewne problemy z czasem uruchamiania aparatów. W przykładowym projekcie Apple AVCaptureSession -startRunning
nie jest wykonywane w głównym wątku, co wydaje się konieczne. Konfiguruję sesję przechwytywania podczas inicjowania widoku, a także uruchamiam go w osobnym wątku. Teraz dodam AVCaptureVideoPreviewLayer
w -didMoveToSuperview
. Wszystko jest w porządku bez wielowątkowości (interfejs jest blokowany przez około sekundę), ale z GCD czasami działa UI, czasami trwa zbyt długo, aby interfejs mógł "odmrozić" lub wyświetlić podgląd.Jak uniknąć blokowania interfejsu użytkownika podczas korzystania z kamery iPhone'a za pośrednictwem AVFoundation?
W jaki sposób radzić sobie z opóźnieniem uruchomienia aparatu w niezawodny sposób, bez blokowania głównego wątku (samo opóźnienie nie jest problemem)?
Mam nadzieję, że chłopaki zrozumieć mój problem: D
Dzięki z góry!
BTW: Oto mój proof-of-concept-projektu (bez GCD) Jestem teraz ponowne dla innej aplikacji: http://github.com/dariolass/QuickShotView
Dzięki! Kluczem dla mnie było wykonanie "startu" programu AVCaptureSession "startRunning" i "stopRunning" na wątku tła. – the4kman