Обновляется ли готовая форма данных AVAssetWriterInput ForMoreMediaData в фоновом потоке? Если readyForMoreMediaData НЕТ, могу ли я заблокировать в основном потоке и подождать, пока значение не изменится на ДА?
Я использую AVAssetWriterInput, помещая в него данные (т. Е. Без использования requestMediaDataWhenReadyOnQueue), и я установил expectedMediaDataInRealTime, и в 99,9% времени я могу просто вызывать appendSampleBuffer (или appendPixelBuffer) для него так же быстро, как мое приложение генерировать кадры.
Это работает нормально, если вы не переводите устройство (iPhone 3GS) в спящий режим на 15 минут или около того в середине сеанса AVAssetWriter. После пробуждения устройства appendPixelBuffer иногда получает сообщение об ошибке: «Пиксельный буфер не может быть добавлен, когда readyForMoreMediaData имеет значение NO». Отсюда мой вопрос - как лучше ответить на readyForMoreMediaData = NO, и если я могу просто немного подождать в основном потоке, вот так:
while ( ![assetWriterInput readyForMoreMediaData] )
{
Sleep for a few milliseconds
}