これは以前にも質問されましたが、質問されてから Swift で何かが変わったに違いありません。CMSampleBuffer
から返されたオブジェクト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
。私は多くの例を見てきましたが、それらはコンパイルされて動作しないか、コンパイルされません。
ここで私が間違っていることを誰かが見ていますか?