2

私はAV Foundation Programming Guideを読んできました。特に、「メディア キャプチャ」セクションの「すべてをまとめる」部分を機能させようとしています。チュートリアルのコードに若干の変更を加えましたが、大きな影響はありません。AVCaptureMovieFileDataOutputからムービーファイルを実際に保存する方法について私が混乱していること。次のようにキャプチャ セッションをセットアップします。

//Create session.
AVCaptureSession *session = [[AVCaptureSession alloc] init];

//Set preset to low.
if ([session canSetSessionPreset:AVCaptureSessionPresetLow]) {
    session.sessionPreset = AVCaptureSessionPresetLow;
}
else {
    // Handle the failure.
}

//Get camera device.
AVCaptureDevice *device =
[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

NSError *error = nil;
AVCaptureDeviceInput *input =
[AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if (!input) {
    //Handle the error appropriately.
}
[session addInput:input];

//Create output.
AVCaptureMovieFileOutput *output = [[AVCaptureMovieFileOutput alloc] init];
[session addOutput:output];

[session startRunning];

私が見ていない開発者向けドキュメントに何かが欠けているだけかもしれませんが、実際にセッションを取得してファイルを作成する方法を見たことがありません。助言がありますか?どうもありがとう!

4

2 に答える 2

7

への参照を保持しますAVCaptureMovieFileOutput。それは重宝します。

とにかく、次のように呼び出すことができるそのクラスのメソッドがあります。

[[self movieFileOutput] startRecordingToOutputFileURL:url recordingDelegate:self];

url、ドキュメント ディレクトリなど、デバイス上のファイル URL です。これにより、録音を開始できます。を呼び出すことで停止できることにも注意してください[[self movieFileOutput] stopRecording];AVCaptureFileOutputRecordingDelegateコールバックを処理するメソッドも実装する必要があります。これらのメソッドは、次のように、記録の開始時と終了時に呼び出されます。

-(void)captureOutput:(AVCaptureFileOutput *)captureOutput 
               didStartRecordingToOutputFileAtURL:(NSURL *)fileURL 
               fromConnections:(NSArray *)connections;

-(void)captureOutput:(AVCaptureFileOutput *)captureOutput 
               didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL 
               fromConnections:(NSArray *)connections error:(NSError *)error;

記録の開始時と終了時に何が起こるかを処理するには、これらのデリゲート メソッドを実装する必要があります。この方法では、最終的なムービーとしてエクスポートする前に、s、トラック、コンポジション、およびあらゆる種類のものをdidFinishRecordingいじることができます。AVAssetURL本当にクールなもの。しかし、それはかなり難しいフレームワークであり、物事が逆に見えるときはイライラします-参考までに、iOSデバイスには3種類の向きがあるため、ビデオの回転は髪の毛を引っ張りたくなるでしょう.

ただし、機能やフラストレーションについて文字通り何日も続けることができるので、可能な限り Apple のドキュメントを参照してください。これで正しい軌道に乗るはずです!

于 2013-04-15T17:11:32.337 に答える