小编Tom*_*aso的帖子

avfoundation:appendPixelBuffer withPresentationTime,适配器未就绪

我使用以下代码从存储到数组中的一系列图像创建视频(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)

iphone adapter avfoundation uiimage

4
推荐指数
1
解决办法
3660
查看次数

标签 统计

adapter ×1

avfoundation ×1

iphone ×1

uiimage ×1