AVFoundationフレームワークを使用してビデオファイルを読み取り、CMSampleBuferRefとして画像バッファーを取得しています。CFArrayAppendValue()関数を使用してCFMutableArrayRefにバッファーを追加しました。
しかし、その配列から取得したい場合、方法はありますか?
CFMutableArrayRefに関するAppleのドキュメントには、配列から取得する方法が記載されていません。
AVFoundationフレームワークを使用してビデオファイルを読み取り、CMSampleBuferRefとして画像バッファーを取得しています。CFArrayAppendValue()関数を使用してCFMutableArrayRefにバッファーを追加しました。
しかし、その配列から取得したい場合、方法はありますか?
CFMutableArrayRefに関するAppleのドキュメントには、配列から取得する方法が記載されていません。
CFArrayGetValueAtIndex
CFArray関数または同様のものを探しています。CFMutableArrayのCFArrayからの「継承」、およびCFMutableArrayのドキュメントには、CFArrayとは異なるAPIのみが含まれています。
こちらのドキュメントをご覧ください。
Mattが指摘したAPI(+1)を使用することに加えて、CFMutableArray
フリーダイヤルでブリッジされNSMutableArray
ます。のインスタンスをにキャストして、のメソッドを使用するだけですCFMutableArray
(NSMutableArray
またはNSMutableArray
その逆)。にキャストした後、NSMutableArray
を使用できます-[NSArray objectAtIndex:]
。
多くのFoundationタイプには、フリーダイヤルでブリッジされたCoreFoundationの対応物があります。フリーダイヤルのブリッジタイプとして、キャストはプロモーションやコンバージョンを導入しません。それらを同じタイプと考えてください。インスタンスにオーバーヘッドや変更を加えることなく、インスタンスを対応するCF-NSに変換/キャストできます。技術的には、実装でARCでCFタイプではなくNSタイプを使用する場合、暗黙の参照カウントが導入される可能性があります。
これは、ObjCで記述していて、ObjCAPIに精通している場合に役立つことがあります。