我使用以下代码从存储到数组中的一系列图像创建视频(takenImages).持续时间是帧持续时间(秒).
然后一切都保存到图书馆.
我的问题是,如果我运行调试器,视频会保存完好,但如果我没有调试器运行,视频就不会完全保存(只保存了第一帧).
int timescale = duration * [takenImages count];
for (int i = 0; i < [takenImages count]; i++) {
CVPixelBufferRef buffer = NULL;
buffer = [self pixelBufferFromCGImage:[[takenImages objectAtIndex:i] CGImage]];
BOOL append_ok = NO;
int j = 0;
while (!append_ok && j < 30) {
if (adaptor.assetWriterInput.readyForMoreMediaData) {
printf("appending %d attemp %d\n", i, j);
append_ok = [adaptor appendPixelBuffer:buffer withPresentationTime:CMTimeMake(i*duration,timescale)];
} else {
printf("adaptor not ready %d, %d\n", i, j);
[NSThread sleepForTimeInterval:0.1];
}
j++;
}
if (!append_ok) {
printf("error appending …Run Code Online (Sandbox Code Playgroud)