'CMSampleBuffer' 类型的值没有成员 'imageBuffer'

Value of type 'CMSampleBuffer' has no member 'imageBuffer'

我目前正在开发一个在 Swift 中使用实时相机视图的项目。我使用了一些在 GitHub 上找到的代码来提供实时摄像头视图,它在我的 MacBook Pro 运行 Mojave 上运行良好。我将所有文件都存储在外部硬盘上,所以我打开我的 iMac 并开始在那里处理项目。我想我有两个不同版本的 Xcode 10 beta,这可能是问题的一部分?基本上这条线在我的 MacBook 上运行良好,但在 iMac 上却不行,顺便说一下,iMac 是 运行 macOS high Sierra version 15:

guard let pixelBuffer : CVPixelBuffer = sampleBuffer.imageBuffer else { return }

它给我以下错误:

Value of type 'CMSampleBuffer' has no member 'imageBuffer'

但是在我的 macbook 上打开完全相同的项目时,这没有任何问题。这可能是 Xcode 版本问题还是因为我是 运行 两个不同的 macOS 版本?

我对在一台 MacBook 上运行但在另一台上运行的代码库有同样的问题。工作的 MacBook 由 Apple 维修,所以我无法验证版本,尽管我知道我的工作代码使用 CMSampleBufferGetImageBuffer。在我的备份中,它说这已被 swift 4.2 中的 CMSampleBuffer.imageBuffer 取代,它不存在。它使用 Mojave、Xcode 10 beta 3 和 ios12。

您仍然可以使用此功能:

CMSampleBufferGetImageBuffer(_ sbuf: CMSampleBuffer) 得到一个 CVPixelBuffer?

直接替换为:

guard let pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }