我在
swift中用AVFoundation录制视频,但是我没有看到file.mp4.我不知道我是否正在录音而且我保存不好或者我没有录音..因为我可以显示会话预览,所有组件都能正常运行..我的代码是:
import UIKit import AVFoundation class ViewController: UIViewController,AVCaptureFileOutputRecordingDelegate { var delegate : AVCaptureFileOutputRecordingDelegate? @IBOutlet var imageView : UIImageView @IBOutlet var imagePreview : UIView var 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 fileNamePostfix = 0 do { filePath = "\(documentsDirectory)/\(dateTimePrefix)-\(fileNamePostfix++).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 }
有什么显着的错误,我看不到?
谢谢!!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。