Мне нужно скачать mp3 файл, но мне нужны только первые 20 секунд песни (или вся песня, если песня меньше 20 секунд).
вот как я загружаю всю песню:
func downloadSong(audioUrl: URL) {
let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let destinationUrl = documentsDirectoryURL.appendingPathComponent(audioUrl.lastPathComponent)
URLSession.shared.downloadTask(with: audioUrl, completionHandler: { (location, response, error) -> Void in
guard let location = location, error == nil else { return }
do {
try FileManager.default.moveItem(at: location, to: destinationUrl)
// song available in destinationUrl
} catch let error as NSError {
}
}).resume()
}
Есть ли способ остановить загрузку через 20 секунд? Я знаю, что могу загрузить всю песню, а затем разрезать ее, но я хочу быть более эффективным, особенно если песня очень длинная.