TSDownloadManager.swift 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // TSPublicContent.swift
  3. // AIRingtone
  4. //
  5. // Created by 100Years on 2025/3/20.
  6. //
  7. import AVFoundation
  8. import Alamofire
  9. class TSDownloadManager {
  10. static func getDownLoadVideo(urlString:String,progressHandler: ((Double) -> Void)? = nil,complete:@escaping (URL?,Bool)->Void){
  11. if let path = TSBusinessFileManager.getLocalURL(urlString: urlString,fileEx:nil,missingEx: "mp4") {
  12. complete(path,false)
  13. }else{
  14. _ = TSDownloadManager.downloadVideo(urlString:urlString,missingEx: "mp4",progressHandler: progressHandler) { url, error in
  15. if let path = url {
  16. complete(path,true)
  17. }else{
  18. complete(nil,true)
  19. }
  20. }
  21. }
  22. }
  23. static func downloadVideo(
  24. urlString: String,
  25. fileEx:String? = nil,
  26. missingEx:String? = nil,
  27. progressHandler: ((Double) -> Void)? = nil,
  28. completion: @escaping (URL?, Error?) -> Void
  29. ) -> DownloadRequest? {
  30. if let fileName = TSBusinessFileManager.getLocalURL(urlString: urlString,fileEx:fileEx,missingEx:missingEx){
  31. completion(fileName,nil)
  32. return nil
  33. }
  34. guard let savePath = TSBusinessFileManager.generateLocalURL(from: urlString, fileEx: fileEx, missingEx: missingEx,frontPathURL: TSBusinessFileManager.saveVideoPathURL,completion: { string, error in
  35. completion(nil,error)
  36. })else { return nil }
  37. return TSNetworkShared.downloadFile(urlString: urlString,to: savePath, progressHandler:progressHandler,completion: completion)
  38. }
  39. }