【发布时间】:2016-05-29 19:33:48
【问题描述】:
以前有人问过这个问题,但是自从被问到之后,Swift 中肯定发生了一些变化。我正在尝试存储从AVCaptureSession 返回的CMSampleBuffer 对象,以便稍后处理。经过一些实验,我发现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。我查看了很多示例,它们要么编译但不工作,要么无法编译。
有人看到我在这里做错了吗?
【问题讨论】:
标签: ios swift2 avfoundation unsafe-pointers core-media