之前有人问过这个问题,但自从有人问到这个问题后,Swift 中肯定发生了一些变化。我正在尝试存储CMSampleBuffer
从 an 返回的对象AVCaptureSession
以供以后处理。经过一些实验,我发现AVCaptureSession
必须重用它的CMSampleBuffer
引用。当我尝试保持超过 15 个时,会话挂起。所以我想我会复制样本缓冲区。但我似乎无法让它工作。这是我写的:
var allocator: Unmanaged<CFAllocator>! = CFAllocatorGetDefault()
var bufferCopy: UnsafeMutablePointer<CMSampleBuffer?>
let err = CMSampleBufferCreateCopy(allocator.takeRetainedValue(), sampleBuffer, bufferCopy)
if err == noErr {
bufferArray.append(bufferCopy.memory!)
} else {
NSLog("Failed to copy buffer. Error: \(err)")
}
这不会编译,因为它说Variable 'bufferCopy' used before being initialized
. 我查看了许多示例,它们要么编译但不工作,要么无法编译。
有人看到我在这里做错了吗?