これは重複する質問かもしれませんが、私は解決に多くの時間を費やしました。 私はドキュメンタリー・ディレクトリにmp4ファイルをダウンロードします。私はこの関数ですべてのファイル名を得ることができます:ドキュメントディレクトリでビデオの再生時間を取得する方法
func listFilesFromDocumentsFolder() -> [String]?
{
let fileMngr = FileManager.default;
let docs = fileMngr.urls(for: .documentDirectory, in: .userDomainMask)[0].path
return try? fileMngr.contentsOfDirectory(atPath:docs)
}
そして、これらのファイルのすべての時間長を取得したいと思います。私がしようと何をお見せしましょう:
var downs = listFilesFromDocumentsFolder()!
for i in 0...downs.count - 1{
if(downs[i] == ".DS_Store"){
continue
}
let fileManager = FileManager.default;
let urls = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
if let documentDirectory:NSURL = urls.first as! NSURL as! NSURL{
let yourFinalVideoURL = documentDirectory.appendingPathComponent(downs[i])
let asset : AVURLAsset = AVURLAsset(url: yourFinalVideoURL!) as AVURLAsset
let totalSeconds = Int(CMTimeGetSeconds(asset.duration))
let minutes = totalSeconds/60
let seconds = totalSeconds % 60
let mediaTime = String(format:"%02i:%02i",minutes, seconds)
print(yourFinalVideoURL)
print(mediaTime)
}
出力は、私は私のビデオファイルのURLを取得しようとすると、私は間違っていた私の意見では
Optional(file:///Users/utf8/Library/Developer/CoreSimulator/Devices/D4F341F1-38A2-498B-99F0-076BE9164A5C/data/Containers/Data/Application/718927F7-4E39-43A8-B760-2A468F82A10F/Documents/viki50102klr.mp4)
00:00
です。しかし、それを修正する方法。私はたくさんのことを試します。ファイルが存在するかどうかをチェックします。それはどこに存在しますか。
はまた、私はあなたがNSURLにURLをキャストするべきではありません
あなたは何を得るのですか? – rmaddy
無関係ですが、なぜNSURLで本当に悪いキャスティングをしているのですか? – rmaddy
こんにちはマディ、その0(ゼロ)も... – Antiokhos