2016-12-05 3 views
0

ドキュメントhttps://developer.apple.com/reference/avfoundation/avcapturefileoutputは、デリゲートのプロパティがAVCaptureFileOutputのために存在を示しています。タイプの値が「AVCaptureFileOutput」はメンバー「デリゲート」を持っていない

しかし、次のコード

let vfo = AVCaptureFileOutput() 
    vfo.delegate = self 

エラーを与える私はAVCaptureMovieFileOutputインスタンスに対してAVCaptureFileOutputDelegateを使用することを探しています

を「型の値が 『AVCaptureFileOutput』はメンバー 『デリゲート』を持っていません」。

任意のポインタが役立ちます。

答えて

0

引用したページのdelegate propertyへのリンクをたどってください(または、ヘッダーファイル内でその周辺の#ifを見てください)、そのプロパティはiOSではなく、macOSのみであることがわかります。したがって、iOSをターゲットにしているプロジェクトにいる場合、そのプロパティは存在しません。

iOSのは、あなたの両方が同じセッションでファイルにキャプチャ記録時のサンプル・バッファを受け取ることはできません - あなたはAVCaptureVideoDataOutputまたはAVCaptureMovieFileOutputではなく、両方を持つことができます。ムービーファイルキャプチャの進捗状況に関するコールバックを委任したい場合は、代わりにstartRecording(toOutputFileURL:recordingDelegate:)を使用して、代わりにAVCaptureFileOutputRecordingDelegateを採用してください。サンプルバッファーが必要な場合は、受信するためにAVCaptureVideoDataOutputを、下位レベルのファイル出力にはAVAssetWriterを使用してください。

+0

私は単にオーディオ付きのビデオを録音し、オーディオパワーレベルを同時に取得しようとしています。これを可能にするクラスの組み合わせはありますか? –

0

AVAssetWriterへのポインタありがとうございます。私はRosyWriterサンプルhttps://developer.apple.com/library/content/samplecode/RosyWriter/Introduction/Intro.htmlを見つけることができました。変更されたCaptureOutput:didOutputSampleBufferは、オーディオaveragePowerLevelをキャプチャして、記録されたムービーを取得し、同時にオーディオレベルを取得するトリックでした。

しかし、そのストライプの使用例がありますか?ビデオ操作を行うレンダラーを取り除こうとすると、サンプルが壊れてしまいます。

関連する問題