ローカルに保存されたビデオのフレームごとにトリガーされるデリゲートを実装するにはどうすればよいですか?試しAVCaptureVideoDataOutputSampleBufferDelegateましたが、ローカルに保存されたビデオでは機能しません。これを行うために他に何かありますか、または仮想を使用できますAVCaptureDeviceか?
2 に答える
AVCapture_ _メソッドはすべてカメラタイプのものを対象としていますが、ディスク上のムービーファイルは間違いなくそうではありません。
あなたが本当に探しているのは、iOS6.0に付属している" AVPlayerItemVideoOutput"クラスのようなものだと思います。
デリゲートプロトコルがありますが、私はまだこの新しいオブジェクトまたはプロトコルを使用しておらず、「outputSequenceWasFlushed」などのデリゲートメソッドが実際にあなたの目的に役立つかどうかはわかりません。このクラスの1つAVPlayerItemVideoOutputは、これらのアイテム(つまり、映画の場合はフレーム)のピクセルバッファーで取得できるようになっていることです。
あなたはこれらを見るかもしれません: https ://ar.qualcomm.at/support_file/download/iOS/videoplayback%20sample%20app/vuforia-videoplayback-ios-1-0-2.zip
それはあなたが望むようなものを実装します。AVAssetReaderOutput->copyNextSampleBufferメソッドを使用できるAVAssetReaderに依存しています。
ビデオアセットのフレームレートに基づいて再生されるすべてのフレームにタイマーを設定できます。タイマーでは、 copyNextSampleBufferによって取得された前述のCMSampleBufferRefを取得できます。これは、 iOS4.xからも利用できます。