繁体   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