Wie kann ich die Dateigröße auf der Festplatte eines Video-PHAsset in iOS8 ermitteln?

8

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)

    
jlw 24.10.2014, 14:27
quelle

2 Antworten

22

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.

%Vor%

// 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 .

%Vor%     
gabbler 24.10.2014, 16:16
quelle
0

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:

%Vor%     
user500 02.04.2015 17:33
quelle