
import UIKit import AVFoundation class VIEwController: UIVIEwController,AVCapturefileOutputRecordingDelegate { var delegate : AVCapturefileOutputRecordingDelegate? @IBOutlet var imageVIEw : UIImageVIEw @IBOutlet var imagePrevIEw : UIVIEwvar session : AVCaptureSession!var fileOutput : AVCaptureMovIEfileOutput!var prevIEwLayer : AVCaptureVIDeoPrevIEwLayer!func initCamera() -> Bool { var cameraBack : AVCaptureDevice? var vIDeoIn : AVCaptureDeviceinput var devices : NSArray = AVCaptureDevice.devices() for device: AnyObject in devices{ if device.position == AVCaptureDeviceposition.Back{ cameraBack = device as? AVCaptureDevice } } delegate=self var error : NSErrorPointer! var deviceinput : AVCaptureinput = AVCaptureDeviceinput.deviceinputWithDevice(cameraBack,error: error) as AVCaptureinput self.session=AVCaptureSession() self.session.addinput(deviceinput as AVCaptureinput) self.fileOutput = AVCaptureMovIEfileOutput() self.session.addOutput(self.fileOutput) var prevIEwLayer: AVCaptureVIDeoPrevIEwLayer = AVCaptureVIDeoPrevIEwLayer.layerWithSession(self.session) as AVCaptureVIDeoPrevIEwLayer prevIEwLayer.frame = self.imagePrevIEw.bounds self.imagePrevIEw.layer.addSublayer(prevIEwLayer) self.session.startRunning() return true} @IBAction func stop(sender : UIbutton) { println("Stop") self.fileOutput.stopRecording()} @IBAction func record(sender : UIbutton) { var formatter: NSDateFormatter = NSDateFormatter() formatter.dateFormat = "yyyy-MM-dd-HH-mm-ss" let dateTimePrefix: String = formatter.stringFromDate(NSDate()) let paths = NSSearchPathForDirectorIEsInDomains( .documentDirectory,.UserDomainMask,true) let documentsDirectory = paths[0] as String var filePath:String? = nil var file@R_404_6889@Postfix = 0 do { filePath = "\(documentsDirectory)/\(dateTimePrefix)-\(file@R_404_6889@Postfix++).mp4" } while (NSfileManager.defaultManager().fileExistsAtPath(filePath)) self.fileOutput.startRecordingToOutputfileURL(filePath,recordingDelegate: delegate) overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() // Do any additional setup after loading the vIEw,typically from a nib. self.initCamera()}func captureOutput(captureOutput: AVCapturefileOutput!,dIDFinishRecordingToOutputfileAtURL outputfileURL: NSURL!,fromConnections connections: AnyObject[]!,error: NSError!){ recording=true}func captureOutput(captureOutput: AVCapturefileOutput!,dIDStartRecordingToOutputfileAtURL fileURL: NSURL!,fromConnections connections: AnyObject[]!) { recording=false } 有什么显着的错误,我看不到?
谢谢!!
解决方法 AVCapturefileOutput -startRecordingToOutputfileURL采用NSURL.在发布的代码中,传递的参数filePath是一个String.请尝试使用NSURL(string:filePath). 总结以上是内存溢出为你收集整理的在使用Swift录制视频时,我做错了什么?全部内容,希望文章能够帮你解决在使用Swift录制视频时,我做错了什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)