Swift和C API(CoreVideo)

Swift和C API(CoreVideo),c,swift,flags,core-video,C,Swift,Flags,Core Video,我试图将CoreVideo与Swift结合使用,但出现以下错误: let flags : CVOptionFlags = 0 CVPixelBufferLockBaseAddress(imageBuffer, flags) ^~~~~~~~~~~~~~~~~ 无法将表达式的类型“CVReturn”转换为类型“CVPixelBuffer!” CVPixelBufferLockBaseAddress(imageBuffer, 0) ^~~~~~~~~~~~~~~~~ 无法将表达式的类型“CVRe

我试图将CoreVideo与Swift结合使用,但出现以下错误:

let flags : CVOptionFlags = 0
CVPixelBufferLockBaseAddress(imageBuffer, flags)
^~~~~~~~~~~~~~~~~
无法将表达式的类型“CVReturn”转换为类型“CVPixelBuffer!”

CVPixelBufferLockBaseAddress(imageBuffer, 0)
^~~~~~~~~~~~~~~~~
无法将表达式的类型“CVReturn”转换为类型“CVOptionFlags”

CVPixelBufferLockBaseAddress(imageBuffer, 0)
^~~~~~~~~~~~~~~~~

如果我不使用它,为什么它不能转换值很重要?我应该以不同的方式传递第二个参数吗?

我对CoreVideo不是很熟悉,但我想问题更多的是
imageBuffer
init,因为您的第一个实现似乎是正确的。 此代码有效,至少编译:

var pixelBuffer : CVPixelBuffer?
let optionFlags : CVOptionFlags = 0
CVPixelBufferLockBaseAddress(pixelBuffer, optionFlags)

我想它会起作用的

var tmp : COpaquePointer = CMSampleBufferGetImageBuffer(imageBuffer).toOpaque()
var pixelBuf : CVPixelBuffer = (Unmanaged<CVPixelBuffer>.fromOpaque(tmp)).takeUnretainedValue()
CVPixelBufferLockBaseAddress(pixelBuf, 0)
var tmp:COpaquePointer=CMSampleBufferGetImageBuffer(imageBuffer).toOpaque() var pixelBuf:CVPixelBuffer=(Unmanaged.fromovaque(tmp)).takeUnrepainedValue() CVPixelBufferLockBaseAddress(Pixelbuff,0)
谢谢。现在的问题似乎是,我似乎无法将CVImageBuffer转换为CVPixelBuffer:“CVImageBuffer”不能转换为“CVPixelBuffer”。谢谢,这似乎可以编译!我必须更多地研究这个指针转换…而且它也会工作,因为我在我的应用程序上使用了这个代码