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.
irgendwelche Updates zu diesem Thema? –