3
在iOS 10中,Apple添加了離線HLS。在文檔中,他們提到:iOS離線HLS文件大小
重要說明:下載的HLS資產以專用 捆綁格式存儲在磁盤上。此捆綁格式可能隨時間而改變,開發人員不應嘗試直接訪問或存儲捆綁軟件包 中的文件,而應使用AVFoundation和其他iOS API與 交互下載資產。
看起來對這些文件的信息訪問是有限的。我試圖找到存儲文件的大小。這是我做的。下載完成後,我保存的相對路徑
func urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL) {
//Save path
video?.downloadPath = location.relativePath
}
後來我重建的文件路徑如下
if let assetPath = workout.downloadPath {
let baseURL = URL(fileURLWithPath: NSHomeDirectory())
let assetURL = baseURL.appendingPathComponent(assetPath)
這工作:
try FileManager.default.removeItem(at: assetURL)
這不,並返回一個錯誤的文件不存在:
let att = try FileManager.default.attributesOfItem(atPath: assetURL.absoluteString)
我可以在視頻資產如下加載和離線播放:
let avAsset = AVURLAsset(url: assetURL)
但這返回我一個空數組:再次
let tracks = avAsset.tracks(withMediaType: AVMediaTypeVideo)
我只是想獲取文件離線HLS資產的大小。它看起來用SO獲取文件大小的其他答案不適用於這些,也不能做出獲取已加載AVAsset大小的答案。提前致謝。
嘿,我居然得到的屬性然而現在,文件大小似乎完全錯誤的。我下載了兩個文件,並且它們都返回204,因爲「let fileSize = attr [FileAttributeKey.size] as!UInt64」首先它們都不應該那麼小,它們都是非常不同的尺寸。 – NickDK
同樣的問題在這裏。 –
我曾經有同樣的問題,這就是爲什麼我(一般)使用這個要點的函數來獲得適當的文件大小估計:https://gist.github.com/blender/a75f589e6bd86aa2121618155cbdf827當使用'allocatedSizeOfDirectory(at :) '用你的assetURL它應該可以工作。我獲得了1435750400字節,這正是手機的存儲估計值(1.44Gb) – fruitcoder