在使用Swift录制视频时,我做错了什么?

在使用Swift录制视频时,我做错了什么?,第1张

概述我在 swift中用AVFoundation录制视频,但是我没有看到file.mp4.我不知道我是否正在录音而且我保存不好或者我没有录音..因为我可以显示会话预览,所有组件都能正常运行..我的代码是: import UIKit import AVFoundation class ViewController: UIViewController, AVCaptureFileOutputReco 我在 swift中用AVFoundation录制视频,但是我没有看到file.mp4.我不知道我是否正在录音而且我保存不好或者我没有录音..因为我可以显示会话预览,所有组件都能正常运行..我的代码是:

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录制视频时,我做错了什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1006382.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存