相关疑难解决方法(0)

Swift DateComponentsFormatter 删除前导零但在分钟位置至少保留一位

我在 Swift 中使用以下 DateComponentsFormatter:

let formatter = DateComponentsFormatter()
formatter.unitsStyle   = .positional
formatter.allowedUnits = [.hour, .minute, .second]
formatter.zeroFormattingBehavior = [.default]
Run Code Online (Sandbox Code Playgroud)

这会产生类似 2:41(2 分 41 秒)和 08(8 秒)的结果。但是,我想在 Minutes 位置至少保留一位数字,返回 0:08 而不是 08。这可能与 DateComponentsFormatter 一起使用吗?我更喜欢返回本地化结果的解决方案。

date nsdatecomponents ios swift nsdatecomponentsformatter

5
推荐指数
1
解决办法
2306
查看次数

如何在文档目录中获取视频时长

这可能是重复的问题,但我花了很多时间寻求解决方案。我将mp4文件下载到文档目录。我可以使用此功能获取所有文件名:

    func listFilesFromDocumentsFolder() -> [String]?
    {
        let fileMngr = FileManager.default;
        let docs = fileMngr.urls(for: .documentDirectory, in: .userDomainMask)[0].path
        return try? fileMngr.contentsOfDirectory(atPath:docs)
    }
Run Code Online (Sandbox Code Playgroud)

我想获取所有这些文件的时间长度。让我展示一下我尝试的方法:

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 …
Run Code Online (Sandbox Code Playgroud)

avurlasset avasset swift

0
推荐指数
1
解决办法
1123
查看次数