使用ASScreenRecorder的AVAssetWriterInputPixelBufferAdaptor appendPixelBuffer

时间:2017-09-21 12:51:33

标签: ios objective-c

我正在尝试使用ASScreenRecorder录制屏幕。问题是这有时会起作用,有时它会显示警告:无法在日志上写入缓冲区,这是因为这行代码:

BOOL success = [_avAdaptor appendPixelBuffer:pixelBuffer withPresentationTime:time];
                    if (!success) {
                        NSLog(@"Warning: Unable to write buffer to video");
               }

返回NO不一致。知道为什么吗?以及如何解决它?

我提到了大部分相关问题,对我来说没有任何作用。 这是一个包含未解决问题的图书馆:https://github.com/alskipp/ASScreenRecorder/issues/15

1 个答案:

答案 0 :(得分:0)

我发现解决方案可能不是有效的解决方案,但它正在为我做这个伎俩。 让线程保持0.001(选择任何时间间隔,这个对我来说没有任何明显的跳帧)

BOOL success = [_avAdaptor appendPixelBuffer:pixelBuffer withPresentationTime:time];
[NSThread sleepForTimeInterval:0.001]; // this line added
      if (!success){
            NSLog(@"Warning: Unable to write buffer to video");
      }

我希望将来找到更好的解决方案。