AVAssetWriterInput и readyForMoreMediaData

Обновляется ли readyForMoreMediaData AVAssetWriterInput в фоновом потоке? Если readyForMoreMediaData является НЕТ, могу ли я заблокировать основной поток и подождать, пока значение не изменится на ДА?

Я использую AVAssetWriterInput, отправляя в него данные (т.е. без использования requestMediaDataWhenReadyOnQueue), и я установил expectMediaDataInRealTime, и в 99,9% случаев я может просто вызвать на нем appendSampleBuffer (или appendPixelBuffer) так быстро, как мое приложение может генерировать кадры.

Это работает нормально, если вы не переводите устройство (iPhone 3GS) в спящий режим на 15 минут или около того в середине сеанса AVAssetWriter. После пробуждения устройства appendPixelBuffer иногда получает сообщение об ошибке: «Пиксельный буфер не может быть добавлен, если для параметра readyForMoreMediaData установлено значение NO». Отсюда мой вопрос - как лучше всего ответить на readyForMoreMediaData = NO и могу ли я просто немного подождать в основном потоке, например:

while ( ![assetWriterInput readyForMoreMediaData] )
{
    Sleep for a few milliseconds
}
7
задан Mike 4 May 2011 в 00:11
поделиться