大佬教程收集整理的这篇文章主要介绍了ios – 如何使用AVCaptureVideoDataOutput录制视频,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
{ var captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) as AVCaptureDevice var error: NSError? = nil do { //remove the prevIoUs inputs let inputs = cameraSession.inputs as! [AVCaptureDeviceInput] for oldInput:AVCaptureDeviceInput in inputs { cameraSession.removeInput(oldInput) } cameraSession.beginConfiguration() if cameraPosition.isEqualToString("Front") { captureDevice = cameraWithPosition(.Front)! } else { captureDevice = cameraWithPosition(.BACk)! } let deviceInput = try AVCaptureDeviceInput(device: captureDevicE) if (cameraSession.canAddInput(deviceInput) == truE) { cameraSession.addInput(deviceInput) } let dataOutput = AVCaptureVideoDataOutput() dataOutput.videoSetTings = [(kCVPixelBufferPixelFormatTypeKey as NSString) : NSnumber(unsignedInt: kCVPixelFormatType_420YpCbCr8BiPlanarFullRangE)] dataOutput.alwaysDiscardsLateVideoFrames = true if (cameraSession.canAddOutput(dataOutput) == truE) { cameraSession.addOutput(dataOutput) } let audiocheck = AVCaptureDevice.devicesWithMediaType(AVMediaTypeAudio) if audiocheck.isEmpty { print("no audio device") return } let audioDevice: AVCaptureDevice! = audiocheck.first as! AVCaptureDevice var audioDeviceInput: AVCaptureDeviceInput? do { audioDeviceInput = try AVCaptureDeviceInput(device: audioDevicE) } catch let error2 as NSError { error = error2 audioDeviceInput = nil } catch { fatalError() } if error != nil{ print(error) let alert = UIAlertController(title: "Error",message: error!.localizedDescription,preferredStyle: .Alert) alert.addAction(UIAlertAction(title: "OK",style: .Default,handler: nil)) self.presentViewController(alert,animated: true,completion: nil) } if cameraSession.canAddInput(audioDeviceInput){ cameraSession.addInput(audioDeviceInput) } cameraSession.commitConfiguration() let queue = dispatch_queue_create("com.invasivecode.videoQueue",DISPATCH_QUEUE_seriaL) dataOutput.setSampleBufferDelegate(self,queue: queuE) } catch let error as NSError { NSLog("\(error),\(error.localizedDescription)") } }
使用AVCaptureMovieFiLeoutput可以使用照片库中的输出视频保存
@H_282_2@movieFiLeoutput.startRecordingToOutputFileURL( outputFilePath,recordingDelegate: self)但是我使用AVCaptureVideoDataOutput作为输出,以便从代理人获取的元数据进行额外的工作,并尝试录制视频,但无法获取任何方法来开始和停止录制视频.
建议如何使用AVCaptureVideoDataOutput录制视频
//First add AVCaptureVideoDataOutput to AVCaptureSession AVCaptureSession *_captureSession; _captureSession = [[AVCaptureSession alloc] init]; ......Configuration...... AVCaptureVideoDataOutput *videoOut = [[AVCaptureVideoDataOutput alloc] init]; ......Configuration...... if ( [_captureSession canAddOutput:videoOut] ) { [_captureSession addOutput:videoOut]; } //Then use captureSession to start and stop recording [_captureSession startRunning]; [_captureSession stopRunning];
请看RosyWriterCapturePipeline.m,这是一个非常好的例子:
以上是大佬教程为你收集整理的ios – 如何使用AVCaptureVideoDataOutput录制视频全部内容,希望文章能够帮你解决ios – 如何使用AVCaptureVideoDataOutput录制视频所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。