3

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

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

它给了我以下错误:

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

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

4

2 回答 2

9

您仍然可以使用此功能:

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

直接替换将是:

guard let pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }
于 2018-07-18T03:06:18.223 回答
0

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

于 2018-07-08T18:27:29.280 回答