AVAssetWriter finishWriting не работает на iOS 6 Simulator

Кажется, что finishWriting нарушается на симуляторе iOS 6 - он висит навсегда. Теперь он устарел и заменен новым finalWritingWithCompletionHandler: - который также никогда не вызывает обработчик.

На реальных устройствах под управлением iOS 6 это работает отлично, как всегда. Также в предыдущих симуляторах iOS он работает отлично. Похоже на ошибку в симуляторе iOS 6.

Кто-нибудь еще испытывает это или может доказать, что я не прав?

Ответы

Ответ 1

У меня тоже была эта проблема, а затем поняла, что я не вызываю endSessionAtSourceTime: после запуска. Это разрешило мою проблему.

Ответ 2

Хорошо нашел работу на Симуляторе.

Похоже, что стоп блокирует поток обработки видео, поэтому обходным путем является вызов stop в основном потоке:

//      in iOS6 Simulator this blocks the video processing thread call back in UI thread.
//       BOOL stop = [assetWriter finishWriting];
[self performSelectorOnMainThread:@selector(stopInOtherThread) withObject:nil]; 

-(void)stopInOtherThread{
    //Stop doesn't block in MainThread
    BOOL stop = [assetWriter finishWriting];
    NSLog(@" assetWriter finishWriting :%d",stop);
}

Это обходное решение, похоже, не работает для finishWritingWithCompletionHandler

Я попытаюсь посмотреть, могу ли я поднять ошибку на Apple.