OSStatus错误1685348671 AVAudioPlayer

我正在尝试使用Alamofire下载mp3文件并将其保存到所需位置。 然后,从那个位置,我正在尝试播放该文件,但它给了我一个错误。

这是下载function

func downloadSong(song: Song, completion: @escaping(Bool) -> ()) { var headers: HTTPHeaders = [:] if let authorizationHeader = Request.authorizationHeader(user: Constants.authName, password: Constants.authKey) { headers[authorizationHeader.key] = authorizationHeader.value } let destination: DownloadRequest.DownloadFileDestination = { _, _ in let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! let fileURL = documentsURL.appendingPathComponent("\(song.getID()).mp3") return (fileURL, [.removePreviousFile, .createIntermediateDirectories]) } Alamofire.download(APIEndpoint.Song(id: song.getID(), token: self.authToken!).path(), method: .get, headers: headers, to: destination).response { (response) in if response.error == nil, let filePath = response.destinationURL?.path { print(filePath) completion(true) } else { completion(false) } } } 

这是一个播放function

 func playSong() { guard let songs = currentPlaylist?.getSongs() else { return } let song = songs[0] let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! let destinationUrl = documentsDirectoryURL.appendingPathComponent("\(song.getID()).mp3") print(destinationUrl) if FileManager.default.fileExists(atPath: destinationUrl.path) { print("The file already exists at path") do { try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) try AVAudioSession.sharedInstance().setActive(true) player! = try AVAudioPlayer(contentsOf: destinationUrl, fileTypeHint: AVFileTypeMPEGLayer3) player!.play() } catch let error as NSError { print("error: \(error.localizedDescription)") } } } 

我想知道下载文件并保存然后播放的最佳做法。

我发现,我输入了错误的APIurl,所以它给了我无效的文件,这是无法播放的。

编辑:

来自后端的文件不是有效的MP3音频文件,这就是错误发生的原因。