0

我正在使用 AVFoundation 框架读取视频文件并将图像缓冲区作为 CMSampleBuferRef,我使用 CFArrayAppendValue() 函数在 CFMutableArrayRef 中添加了缓冲区。

但是如果我想从那个数组中检索,有什么办法吗?

CFMutableArrayRef的 Apple 文档没有提供从数组中检索的方法。

4

2 回答 2

3

您正在寻找 CFArray functionCFArrayGetValueAtIndex或类似的东西。CFMutableArray 的“继承”自 CFArrays,而 CFMutableArray 上的文档仅包含与 CFArray 不同的 API。

请参阅此处的文档。

于 2012-07-17T16:47:59.133 回答
2

除了使用 Matt 指出 (+1) 的 API 之外,CFMutableArray它还与NSMutableArray. 您可以简单地将 a 的实例CFMutableArray转换为 anNSMutableArray并使用NSMutableArray's 方法(或相反)。继施以至NSMutableArray,即可使用-[NSArray objectAtIndex:]

许多 Foundation 类型都有 CoreFoundation 对应的免费桥接。作为免费的桥接类型,演员表不会引入促销或转换。将它们视为相同的类型,并且可以将实例转换/转换为它们的 CF-NS 对应物,而不会引入开销或更改实例。从技术上讲,如果您的实现使用 NS 类型而不是 ARC 下的 CF 类型,则可能会引入隐式引用计数。

如果您使用 ObjC 编写并且更熟悉 ObjC API,这可能会很有用。

于 2012-07-17T16:57:47.667 回答