簡體   English   中英

如何解決錯誤協議快速錄制視頻?

[英]How to solve error protocol recording video in swift?

我正在嘗試使用AVFoundation錄制視頻。 在目標c中,我有一個協議定義要委托給.h:

 @protocol AVCaptureManagerDelegate <NSObject>
 - (void)didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL
                                  error:(NSError *)error;
 @end


 @interface AVCaptureManager : NSObject

 @property (nonatomic, assign) id<AVCaptureManagerDelegate> delegate;

並迅速需要以下代碼使用recordingDelegate保存到URL中,但需要委托:

self.movieFileOut.startRecordingToOutputFileURL(filePath, recordingDelegate)

我很困惑..謝謝!

這是一些快速錄制視頻的代碼。 首先是定義一個委托:

import Foundation
import AVFoundation
import UIKit

class VideoDelegate : NSObject, AVCaptureFileOutputRecordingDelegate
{

    func captureOutput(captureOutput: AVCaptureFileOutput!, didFinishRecordingToOutputFileAtURL outputFileURL: NSURL!, fromConnections connections: [AnyObject]!, error: NSError!) {
    println("capture output : finish recording to \(outputFileURL)")
    }

    func captureOutput(captureOutput: AVCaptureFileOutput!, didStartRecordingToOutputFileAtURL fileURL: NSURL!, fromConnections connections: [AnyObject]!) {
        println("capture output: started recording to \(fileURL)")
    }

}

之后,調用startRecordingToOutputFileURL(假設會話是AVCaptureSession):

let videoDelegate = VideoDelegate()
let fileOutput = AVCaptureMovieFileOutput()
session.addOutput(fileOutput)
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString
let outputPath = "\(documentsPath)/output.mov"
let outputFileUrl = NSURL(fileURLWithPath: outputPath)
fileOutput.startRecordingToOutputFileURL(outputFileUrl, recordingDelegate: videoDelegate)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM