2013-05-03 33 views
5

Pracuję nad aplikacją na iOS, w której tworzę wideo z obrazów. Używam AVAssetWriter, aby to osiągnąć. Wszystko dziala. Ale kiedy aplikacja przechodzi w tle i przełącza się z powrotem, zapis wideo nie powiedzie się. AVAssetWriter 'finishWritingWithCompletionHandler nie jest wywoływany, gdy przełączę się z powrotem do aplikacji.AVAssetWriter kończy się niepowodzeniem, gdy aplikacja przejdzie w tle.

Może być duplikatem AVAssetWriter fails when Application enters Background during Rendering, ale nie otrzymuję tam żadnej pomocy.

Masz pomysł?

Dzięki

+0

Czy skonfigurowałeś zadanie przetwarzania w tle? W twoim pytaniu brakuje szczegółów. – Wain

Odpowiedz

6

Ta odpowiedź jest oparta na założeniu, że chcesz kontynuować wideo renderowania podczas gdy w tle.

Naprawiłem to w mojej aplikacji, prosząc system operacyjny, aby udzielił pozwolenia na wykonanie aplikacji w tle (przez ograniczony czas). Ta odpowiedź może pomóc zbyt iOS generating a video in the background task

@property (nonatomic,assign) UIBackgroundTaskIdentifier __block backgroundRenderingID; 

    UIApplication *app = [UIApplication sharedApplication]; 

    _backgroundRenderingID = [app beginBackgroundTaskWithExpirationHandler:^{ 
     [app endBackgroundTask:_backgroundRenderingID]; 
     _backgroundRenderingID = UIBackgroundTaskInvalid; 
    }]; 

Nie zapomnij puścić raz skończysz!

[[UIApplication sharedApplication] endBackgroundTask:_backgroundRenderingID]; 
+2

Dzięki za pomoc :) – Unnati