PHAsset Video URL erzeugen und abspielen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHAsset Video URL erzeugen und abspielen

    Hallo,

    aktuell versuche ich Videos aus der Photo Library in einem Player abzuspielen. Dafür nutze ich zunächst einmal einen ImagePicker um mir auch sämtliche Bilder und Videos anzeigen zu lassen. Das funktioniert auch soweit super so das ich jeglichen Content sehe. Jedoch sehen die Videos im ImagePicker etwas komisch aus bzw. es sieht aus als wären die Videos ebenfalls Bilder. Wenn ich dann auch auf ein Video klicke wird mir in der Konsole ausgegeben das es sich um ein UIImage handelt.

    Ich habe mit Videos bisher noch nicht so viele Erfahrungen gemacht und kann deswegen nicht sagen ob das so richtig ist jedoch habe ich im Netz gelesen das man sich zu dem jeweiligen Video eine URL ausgeben lassen kann um dieses dann abzuspielen.

    Meine Frage ist also wie ich eben eine solche URL des Videos generiere ?

    Hier mein Code um mir den Content der PhotoLibrary anzeigen zu lassen:

    Quellcode

    1. func grabPhotos() {
    2. let imgManager = PHImageManager.default()
    3. let requestOptions = PHImageRequestOptions()
    4. requestOptions.isSynchronous = true
    5. requestOptions.deliveryMode = .highQualityFormat
    6. //Nach Datum ordnen
    7. let fetchOptions = PHFetchOptions()
    8. fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
    9. fetchResult = PHAsset.fetchAssets(with: fetchOptions)
    10. print(fetchResult)
    11. if fetchResult.count > 0 {
    12. for i in 0..<fetchResult.count {
    13. imgManager.requestImage(for: fetchResult.object(at: i) , targetSize: CGSize(width: 200, height: 200), contentMode: .aspectFill, options: requestOptions, resultHandler: {
    14. image, error in
    15. self.imageArray.append(image!)
    16. })
    17. }
    18. } else {
    19. print("You got no photos")
    20. collectionView.reloadData()
    21. }
    22. }
    Alles anzeigen