2017-03-25 1 views
0

Ich arbeite an einem Projekt mit Videoaufnahme. Ich möchte Videos im Wesentlichen programmatisch aufnehmen.Swift ImagePicker VideoCapture didFInishPickingMedia wird nicht aufgerufen

I definiert die imagepicker und begann Videoaufzeichnung:

if (UIImagePickerController.isSourceTypeAvailable(.camera)) { 
      imagePicker.sourceType = .camera 
      imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.front 
      imagePicker.allowsEditing = false 
      imagePicker.delegate = self 

      //present(imagePicker, animated: true, completion: {}) 
     } 
     imagePicker.startVideoCapture() 
     print("Capture started") 

später, ich Video-Capture gestoppt:

imagePicker.stopVideoCapture() 
    print("capture over") 

Ich weiß, das sollte meine Methode anrufen:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

    print("captured") 


    if let pickedvideo:NSURL = (info[UIImagePickerControllerMediaURL] as! NSURL) { 
     let selectorToCall = Selector("videoWasSavedSuccessfully.didFinishSavingWithError:context:") 
     UISaveVideoAtPathToSavedPhotosAlbum(pickedvideo.relativePath!, self, selectorToCall, nil) 

     let videoasset = (AVAsset(url: pickedvideo as URL)) 
     let playeritem = AVPlayerItem(asset: videoasset) 
     let player = AVPlayer(playerItem: playeritem) 
     let playerViewController = AVPlayerViewController() 
     playerViewController.player = player 
     self.present(playerViewController, animated: true) { 
      playerViewController.player?.play() 
     } 
    } 
} 

aber das "eingefangene" wird nicht gedruckt, obwohl ich weiß, dass ich die Aufnahme starte und stoppe, wie "Captu re started "und" Capture over "werden gedruckt. Ich bin mir nicht sicher, warum die Methode nicht aufgerufen wird. Irgendwelche Vorschläge?

+1

Warum verwenden Sie das Kakaokennzeichen? –

+0

Sie sollten den Rückgabewert von 'startVideoCapture' überprüfen. Gibt es "wahr" zurück? – rmaddy

Antwort

-1

Versuchen Sie, mediaTypes auf kUTTypeMovie zu setzen.

+0

Was hätte das damit zu tun, dass die Delegate-Methode aufgerufen wird oder nicht? – rmaddy

+0

Ich schlug vor, hinzufügen, da es Medientypen fehlte. Zumindest sollten wir fehlende Zeile hinzufügen und überprüfen. –

+0

Dann sollte dies ein Kommentar sein, keine Antwort. Aber du kannst noch keine Kommentare posten. Bitte poste keine Kommentare als Antworten. Warte, bis du genug Reputation hast, um Kommentare zu schreiben. – rmaddy

Verwandte Themen