Swift'de AVFoundation kullanarak bir videonun nasıl kaydedileceğini anlamaya çalışıyorum. Özel bir kamera oluşturmaya kadar elimden geleni yaptım ama sadece fotoğrafların nasıl çekileceğini anladım ve videonun nasıl kaydedileceğini anlayamıyorum. Anladığım kadarıyla, kayıttan veri almak için AVCaptureVideoDataOutput
'u kullanmalısınız, ancak kaydın nasıl başlatılacağını ve temsilci yöntemlerini nasıl uygulayacağımı anlayamıyorum.Swift'de avfoundation ile bir video nasıl kaydedilir?
Tüm AVFoundation Programlama Kılavuzu/Hareketsiz ve Video Medya Yakalama, Objective-C'de ve bunu çözemiyorum. İşte bu görevi başarmak için benim girişimi var:
Önce
override func viewDidLoad() {
super.viewDidLoad()
captureSession.sessionPreset = AVCaptureSessionPresetHigh
let devices = AVCaptureDevice.devices()
for device in devices {
if (device.hasMediaType(AVMediaTypeVideo)) {
if(device.position == AVCaptureDevicePosition.Back) {
captureDevice = device as? AVCaptureDevice
if captureDevice != nil {
beginSession()
}
}
}
}
}
Sonra beginSession() Ben İşte nerede Canlı yayını
func beginSession() {
var err : NSError? = nil
captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err))
if err != nil {
println("error: \(err?.localizedDescription)")
}
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.cameraView.layer.addSublayer(previewLayer)
self.cameraView.bringSubviewToFront(takePhotoButton)
self.cameraView.bringSubviewToFront(self.snappedPicture)
self.cameraView.bringSubviewToFront(self.backButton)
previewLayer?.frame = self.cameraView.layer.frame
captureSession.startRunning()
}
kurmak denir kez kamera/yakalama oturumu kurmak Kullanıcının bir video kaydetme ve yakalama yaptığı yere kayıt yapmasını engellerim:
Sonra self.videoFileOutput.stopRecording()
'u arıyorum. Doğru uygulamadan nasıl bilemiyorum çünkü hayal edebileceğiniz Sonra son olarak
temsilci yöntemleri
func captureOutput(captureOutput: AVCaptureFileOutput!, didFinishRecordingToOutputFileAtURL outputFileURL: NSURL!, fromConnections connections: [AnyObject]!, error: NSError!) {
return
}
func captureOutput(captureOutput: AVCaptureFileOutput!, didStartRecordingToOutputFileAtURL fileURL: NSURL!, fromConnections connections: [AnyObject]!) {
return
}
Ve hiçbir şey olmuyor.
kontrol dosyası yolu gerçekten doğru olup olmadığını. Varolan bir dizinde olmalı. – findall
Yine de her şey doğru mu ??? –
Kullanmakta olduğunuz dosya dizini geçerli –