2017-05-30 4 views
1

Ich mache einen Player und ich möchte alle Dateien auflisten und vor allen Dateien möchte ich die Dauer des Videos darstellen.Erhalten Sie die genaue Dauer eines Videos

Das einzige Problem ist, dass ich nicht die richtige Videodauer bekomme, manchmal gibt es eine Dauer völlig falsch.

Ich habe die unten Lösung versucht:

let asset = AVAsset(url: "video.mp4") 

let duration = asset.duration.seconds 

also, dass sie die Zeit manchmal einen Wert geben manchmal eine andere. Wenn jemand eine mögliche Lösung kennt bin ich froh zu hören.

ich aktualisieren Sie den Code eine mögliche Lösung verwenden, aber es funktionierte nicht gut,

let asset = AVAsset(url: url) 

let duration = asset.duration 

let durationTime = CMTimeGetSeconds(duration) 

let minutes = Double(durationTime/60) 

Ich habe mit einem Video von 11.47 Minuten Dauer versucht, und es gibt mir = 11:78 Wie könnte ein Video 11 Minuten und 78 Sekunden haben?

Also ich denke, das Problem mit dem Video ist, und ich nahm ein weiteres Video von 1:16 Minuten und wieder der zurückgegebene Wert 1.26 (10 Sekunden falsch)

+0

https://stackoverflow.com/questions/31157526/how-to-get-video-full-duration-and-current-playing-time –

+0

Ich habe es bereits versucht, und die Zeit halten verrückt Werte @Eric Aya –

Antwort

4

Dies funktioniert für mich:

import AVFoundation 
import CoreMedia 

... 

    if let url = Bundle.main.url(forResource: "small", withExtension: "mp4") { 
     let asset = AVAsset(url: url) 

     let duration = asset.duration 
     let durationTime = CMTimeGetSeconds(duration) 

     print(durationTime) 
    } 

Für das Video here druckt "5.568", die korrekt ist.

+0

Hey Mann, ich kopierte einen eingefügten Code, ändere nicht eine Zeile und de Dauer ist Givin 707 für ein Video von 11 Minuten, so teilte ich 707 von 60 und es zurück 11,78, etwas ist falsch. Ihre Antwort ist gut, aber ich werde mein Problem nicht lösen, ich werde es weiter versuchen. thxs –

+1

Wenn das Video 11 Minuten und 47 Sekunden lang ist, dann ist 707 korrekt. 707 Sekunden sind 11,78 Minuten. –

+0

Aber die richtige Zeit ist 11:47, und wie bekomme ich das (11:47), ich weiß nicht, ob ich etwas verstehe oder etwas vermisse, kannst du @DavidShaw erklären –

Verwandte Themen