2015-08-14 45 views
5

Chcę umieścić filmy wideo zapisane na moim iPhonie na moim Dysku Google. już zrobione z obrazami, ale z filmów, to jest inny problem ...iOS: jak przekonwertować wideo PHAsset na NSData

przypadku obrazów, nie ma problemu, mogę przekonwertować mój atut do NSData z tą metodą:

data = UIImagePNGRepresentation(result!)! 

Włożyłem obraz na mój dysk!

Ale w przypadku filmów próbowałem na wiele różnych sposobów, ale nie, nie mogę.

Jak mogę to zrobić?

Wielkie dzięki!

+0

jaki format jest plik (".mp4")? Sprawdź odpowiedź [w tym pokrewnym pytaniu i daj mi znać, jeśli to ci pomoże] (http://stackoverflow.com/a/19565488/981049). –

+0

Nie wiem, ale to filmy zapisane na moim iPhonie, które tworzę aparatem iPhone'a, prawdopodobnie. –

Odpowiedz

15

Zrobiłem to!

To rozwiązanie:

PHCachingImageManager().requestAVAssetForVideo(asset, options: nil, resultHandler: {(asset: AVAsset?, audioMix: AVAudioMix?, info: [NSObject : AnyObject]?) in 
     dispatch_async(dispatch_get_main_queue(), { 

      let asset = asset as? AVURLAsset 
      var data = NSData(contentsOfURL: asset.URL) 
    }) 
}) 

A potem masz dobrą NSData zmiennej za pomocą którego można umieścić swój film na chmurze!

+0

To rozwiązanie nie działa z filmami w zwolnionym tempie! – user3298158

+0

Nie działa. Prawidłowym rozwiązaniem jest [how-to-get-nsdata-from-file-by-using-phasset] (http://stackoverflow.com/questions/35652094/how-to-get-nsdata -z-file-by-using-phasset) – Xingxing