Ich kann ein Video-PHAsset über das Photos-Framework in iOS8 anfordern. Ich würde gerne wissen, wie groß die Datei auf der Festplatte ist. Es scheint keine Eigenschaft von PHAsset zu sein, dies zu bestimmen. Hat jemand eine Lösung? (Verwendung von Photos Framework nicht erforderlich)
Bearbeiten
Wie bei iOS 9.3 führt die Verwendung von requestImageDataForAsset
für einen Videotyp PHAsset
zu einem Bild, das das erste Bild des Videos ist. Es funktioniert also nicht mehr. Verwenden Sie stattdessen die folgende Methode, für normale Videos kann die Anforderungsoption nil
sein, aber für Zeitlupenvideos muss PHVideoRequestOptionsVersionOriginal
festgelegt werden.
// ursprüngliche Antwort
Verwenden Sie für PHAsset:
%Vor%Für ALAsset:
%Vor%Ich habe an einem Video Asset getestet, PHAsset zeigt die Größe 43.703125, ALAsset zeigt die Größe 43.703005.
Bearbeiten
Für PHAsset, eine andere Möglichkeit, die Dateigröße zu erhalten. Aber wie schon von Alfie Hanssen erwähnt, funktioniert es bei normalem Video, bei Slow-Motion-Video wird die folgende Methode ein AVComposition-Asset im Block zurückgeben, also habe ich den Check für seinen Typ hinzugefügt. Verwenden Sie für Zeitlupenvideos die Methode requestImageDataForAsset
.
Du hebst ziemlich hohe Chance, dass das Video, das du wissen willst, nicht die Größe von AVURLAsset
ist. Aber es ist in Ordnung, dass unter der Haube mehr Dateien sind, aus denen dein Video zusammengesetzt ist (zum Beispiel rohe Samples, Slow-Mo-Zeitbereiche, Filter, etc ...), weil du die Größe einer konkreten abspielbaren Datei wissen willst. Ich bin mir nicht sicher, wie hoch die geschätzte Dateigröße in diesem Fall ist, aber so soll es gemacht werden:
Tags und Links ios video photosframework photokit