NSURL de PHAsset

Je suis la conversion de notre application sur l'utilisation des Photos Cadre de iOS8, le ALAsset cadre est clairement un citoyen de deuxième classe sous iOS8.

Je vais avoir un problème, c'est que notre architecture veut vraiment un NSURL qui représente l'emplacement des médias sur le "disque dur". Nous nous en servons pour télécharger les médias à nos serveurs pour un traitement ultérieur.

C'était facile avec ALAsset:

    ALAssetRepresentation *rep = [asset defaultRepresentation];
    self.originalVideo = rep.url;

Mais je suis tout simplement pas voir cette capacité dans PHAsset. Je suppose que je peux appeler:

    imageManager.requestImageDataForAsset

et puis l'écrire dans un temp place dans le système de fichiers, mais qui semble terriblement lourd et inutile, pour ne pas mentionner potentiellement lent.

Est-il un moyen pour obtenir ce ou vais-je avoir refactoriser plus de mon application à utiliser uniquement NSURLs pour iOS7 et une autre méthode pour iOS8?

  • En regardant mon code un peu plus le seule raison pour laquelle j'utilise l'URL est de nourrir AVAssetExportSession et/ou AVAssetImageGenerator donc je suppose que je vais juste remplacer ces appels. Puis à nouveau, une fois que j'ai donner à ceux que j'ai encore besoin d'un NSURL à transmettre à nos uploader, donc je parie que le problème est toujours là.
  • De votre commentaire ici, il semble que vous avez déjà compris vous-même, mais pour les autres à voir ici: Si vous avez besoin d'utiliser l'URL pour les anciennes méthodes (comme AVAssetExportSession), vous pouvez probablement utiliser les versions les plus récentes d'entre eux qui correspondent à un PHAsset plutôt qu'un AVAsset (AVURLAsset). Par exemple: requestExportSessionForVideo et requestPlayerItemForVideo de PHImageManager.defaultManager()
InformationsquelleAutor Paul Cezanne | 2014-09-24