2016-06-02 1 views
2

Je récupère des vidéos de PHAsset afin que l'utilisateur puisse choisir la vidéo et importer pour effectuer l'édition. Mais l'utilisateur ne devrait être en mesure de sélectionner la vidéo avec l'orientation Paysage, si l'utilisateur sélectionner la vidéo portrait, il/elle recevrait un message d'alerte disant que sa vidéo portrait et ne peut donc pas importer pour éditer. Une façon de faire est de créer AVAsset à partir de l'URL de PHFetchResults, puis de vérifier un preferedTransform, mais cela serait une opération très coûteuse à faire correctement?Comment détecter si la vidéo est en mode paysage/portrait lorsqu'elle est extraite de PHAsset?

Existe-t-il un moyen de le faire sans créer AVasset?

+0

Je ne pense pas que ce soit aussi coûteux que vous le pensez. – Xcoder

+0

hmm, je pensais que je pourrais vérifier imageOrientation de la vignette pour identifier si la vidéo est portrait, ce ne sera pas nécessaire pour rendre avasset de la vidéo. – Solid

Répondre

3

https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAsset_Class/

var pixelWidth: Int {get}

var pixelHeight: Int {get}

La largeur et la hauteur, en pixels, de l'image de l'actif ou données vidéo. (lecture seule)

Si le contenu de l'actif a été modifié, cette propriété décrit la taille de la version actuelle de l'actif. iOS Disponibilité (8.0 et versions ultérieures)

if asset!.pixelHeight > asset!.pixelWidth { 
// will be portrait video or Image 
} 

Disponible dans iOS 8.0 et versions ultérieures.