画像の配列を指定してビデオを作成するために、次のコードを使用しています。すべてが正しく機能します。コードはシリアル キューで実行されます。アプリの状態がバックグラウンドからフォアグラウンドに変わると、このコードは CVBufferRelease(buffer) でクラッシュします。また、バッファが null を指していないことも確認しました。
この問題を解決する方法はありますか?
UIImage *image = [UIImage imageWithData:imgFrameData];
CVPixelBufferRef buffer = NULL;
buffer = [self newPixelBufferFromCGImage:[image CGImage] andSize:CGSizeMake(frameSize, frameSize)];
BOOL append_ok = NO;
while (!append_ok){
if (adaptor.assetWriterInput.readyForMoreMediaData)
{
CMTime frameTime = CMTimeMake(i*timeBetweenFrame,(int32_t) TIMESCALE);
CMTimeShow(frameTime);
append_ok = [adaptor appendPixelBuffer:buffer withPresentationTime:frameTime];
if(buffer)
{
CVBufferRelease(buffer);
}
[NSThread sleepForTimeInterval:0.05];
}
else
{
[NSThread sleepForTimeInterval:0.1];
}
}