У меня есть tableViewCell, и я хочу воспроизвести звук, как правило .m4a внутри него.Я глобально объявил мой AVAudioPlayer
экземпляр следующим образом:
var player = AVAudioPlayer()
Затем я загружаю свой звук и помещаю его в каталог в Documents.Но, когда я пытаюсь воспроизвести свой звуковой файл из каталога, я получаю эту ошибку:
Open failed
The operation couldn’t be completed. (OSStatus error 2003334207.)
Это мой код, я не понимаю, что не так.и я отследил файлы в симуляторе и смог воспроизвести их с помощью QuickTimePlayer.
func downloadSound(_ message: ChatVoiceMessageStructure) {
guard let url = service?.networkManager.CDNURL else { return }
let doanloadURL = URL(string: url.appending(message.name!))
let docUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
let desURL = docUrl.appendingPathComponent("tmpsong.m4a")
var downloadTask:URLSessionDownloadTask
let request = URLRequest(url: doanloadURL!)
downloadTask = URLSession.shared.downloadTask(with: request, completionHandler: { [weak self](URLData, response, error) -> Void in
do{
let isFileFound:Bool? = FileManager.default.fileExists(atPath: desURL.path)
if isFileFound == true{
print(desURL) //delete tmpsong.m4a & copy
} else {
try FileManager.default.copyItem(at: URLData!, to: desURL)
}
let sPlayer = try AVAudioPlayer(contentsOf: desURL)
self?.player = sPlayer
self?.player.prepareToPlay()
self?.player.play()
} catch let err {
print(err.localizedDescription)
}
})
downloadTask.resume()
}