2017-02-19 5 views
1

Ich versuche ein Video aus der Bibliothek in meiner schnellen App zu erhalten. Ich verwende den folgenden Code-Schnipsel:iOS Swift - Ich kann kein Video aus der Bibliothek verwenden

print("ChatDetailsController - imgaction - Vid from Lib pressed") 
     self.selection = "videoLib"; 
     self.imgSelection = "vidFromLib" 
     self.imagePicker.sourceType = .PhotoLibrary 
     self.imagePicker.delegate = self 
     self.imagePicker.mediaTypes = ["public.movie"] 
     self.presentViewController(self.imagePicker!, animated: true, completion: nil) 

Dann in Delegatmethode:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 
{ 
    if(selection == "videoLib") 
    { 
    if let videoURL = info[UIImagePickerControllerReferenceURL] as? NSURL 
     { 


      print("imagePickerController - reached for video - from Lib - \(videoURL)") 
      let videoData = NSData(contentsOfURL: videoURL) 

     } 
    } 

} 

Wenn die App einsetzen, die Bibliothek zeigt, und ich kann ein Video auswählen, dann heißt es Video komprimieren .. aber dann stürzt die App ab.

Der Absturz passiert, wenn ich versuche, auf die videoData Variable zuzugreifen, weil es nicht in der Lage war, die tatsächlichen Daten zu erhalten, da der Pfad ein Assetpfad und kein Videopfad ist.

Das Log zeigt etwas Ähnliches wie folgt aus:

fatal error: unexpectedly found nil while unwrapping an Optional value

Die Druckfunktion zeigt:

imagePickerController - reached for video - from Lib - assets-library://asset/asset.MOV?id=7D3BFA00-A7CB-470C-8899-F82FCC2CBC54&ext=MOV

, auch direkt nach dem das Video Auswahl/Auswahl, eine Meldung wie diese wird in der Konsole/im Protokoll angezeigt:

[Generic] video path /var/mobile/Media/PhotoData/CPLAssets/group419/A2901DD1-FDEF-423B-B4A3-E808B9AC45E1.MOV for PLPreviewImageAndDurationForVideoAtPath does not exist

Natürlich ändert sich der Dateiname bei jedem Lauf.

Ich bin in der Lage, ein Video und Bilder von der Kamera zu bekommen, und Bilder aus der Bibliothek zu bekommen, habe ich nur Probleme mit der Verwendung des Videos aus der Bibliothek. Ich würde erwarten, die Video-URL ähnlich zu sehen:

/var/mobile/Containers/Data/Application/BEDDC883-B20E-496D-8C9A-A40EC0A29214/Documents/63ea24932c101b76c72fcbae3993fc9b.mov zum Beispiel; wo sich die Videodatei in der Anwendung befindet und nicht als unbrauchbare Asset-URL angezeigt wird. Jede Hilfe wäre willkommen.

+0

irgendwelche Updates zu diesem Thema? –

Antwort

1

Das Problem ist, dass Sie versuchen, das falsche Video zu holen. Sie versuchen, info[UIImagePickerControllerReferenceURL] zu verwenden. Was Sie wollen, ist info[UIImagePickerControllerMediaURL].

+0

Sie sind absolut richtig! Ich hatte das schon in meiner Auswahl von Camera aber fand nicht, dass es für den Video-Lib Teil gleich ist. Ich werde Ihre Antwort akzeptieren, sobald ich mehr Punkte erhalten habe. Vielen Dank! – Mahmoud

Verwandte Themen