Je suis en train de mettre en œuvre le streaming hors ligne avec le streaming FairPlay. Par conséquent, je télécharge des flux en utilisant un AVAssetDownloadTask
.Obtenez la taille d'un AVAssetDownloadTask avant de télécharger
Je veux donner la rétroaction des utilisateurs au sujet de la taille du téléchargement qui commence à commencer:
Êtes-vous sûr que vous voulez télécharger ce flux? Il faudra 2.4GB de télécharger et vous avez actuellement 14 Go d'espace laissé
J'ai vérifier des propriétés comme countOfBytesReceived
et countOfBytesExpectedToReceive
mais ceux-ci donnent l'habitude des valeurs de retour correctes.
let headRequest = NSMutableURLRequest(URL: asset.streamURL)
headRequest.HTTPMethod = "HEAD"
let sizeTask = NSURLSession.sharedSession().dataTaskWithRequest(headRequest) { (data, response, error) in
print("Expected size is \(response?.expectedContentLength)")
}.resume()
imprime une taille de 2464, où à la fin la taille est 3GB.
Pendant le téléchargement, je propriétés ci-dessus: connecté
func URLSession(session: NSURLSession, assetDownloadTask: AVAssetDownloadTask, didLoadTimeRange timeRange: CMTimeRange, totalTimeRangesLoaded loadedTimeRanges: [NSValue], timeRangeExpectedToLoad: CMTimeRange) {
print("Downloaded \(convertFileSizeToMegabyte(Float(assetDownloadTask.countOfBytesReceived)))/\(convertFileSizeToMegabyte(Float(assetDownloadTask.countOfBytesExpectedToReceive))) MB")
}
Mais ceux-ci restent à zéro:
Téléchargé 0,0/0,0 MB
Avez-vous déjà résolu ce @Antoine? – bnussey