我正在使用 AVFoundation 框架读取视频文件并将图像缓冲区作为 CMSampleBuferRef,我使用 CFArrayAppendValue() 函数在 CFMutableArrayRef 中添加了缓冲区。
但是如果我想从那个数组中检索,有什么办法吗?
CFMutableArrayRef的 Apple 文档没有提供从数组中检索的方法。
我正在使用 AVFoundation 框架读取视频文件并将图像缓冲区作为 CMSampleBuferRef,我使用 CFArrayAppendValue() 函数在 CFMutableArrayRef 中添加了缓冲区。
但是如果我想从那个数组中检索,有什么办法吗?
CFMutableArrayRef的 Apple 文档没有提供从数组中检索的方法。
您正在寻找 CFArray functionCFArrayGetValueAtIndex
或类似的东西。CFMutableArray 的“继承”自 CFArrays,而 CFMutableArray 上的文档仅包含与 CFArray 不同的 API。
请参阅此处的文档。
除了使用 Matt 指出 (+1) 的 API 之外,CFMutableArray
它还与NSMutableArray
. 您可以简单地将 a 的实例CFMutableArray
转换为 anNSMutableArray
并使用NSMutableArray
's 方法(或相反)。继施以至NSMutableArray
,即可使用-[NSArray objectAtIndex:]
。
许多 Foundation 类型都有 CoreFoundation 对应的免费桥接。作为免费的桥接类型,演员表不会引入促销或转换。将它们视为相同的类型,并且可以将实例转换/转换为它们的 CF-NS 对应物,而不会引入开销或更改实例。从技术上讲,如果您的实现使用 NS 类型而不是 ARC 下的 CF 类型,则可能会引入隐式引用计数。
如果您使用 ObjC 编写并且更熟悉 ObjC API,这可能会很有用。