【问题标题】:How to store Audio Data into Documents Directory?如何将音频数据存储到文档目录中?
【发布时间】:2018-03-28 16:44:46
【问题描述】:
我有一个AVAudioPlayer,我想将其数据作为音频文件存储到文档目录中。但我似乎无法让它工作。
我尝试过使用FileManager、AudioData.write(to: URL) 和许多其他函数,但它们都抛出错误,指出文件不存在或无法保存在文档文件夹中。
【问题讨论】:
标签:
objective-c
swift
audio
avfoundation
nsfilemanager
【解决方案1】:
[Swift 4] 首先创建目标 URL(带有文件名的文件夹),然后下载歌曲进行保存。请参阅下面代码中的保存部分代码。
func saveFile(url:URL){
let docUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
let desURL = docUrl.appendingPathComponent("tmpsong.m4a") //Use file name with ext
var downloadTask:URLSessionDownloadTask
downloadTask = URLSession.shared.downloadTask(with: url, completionHandler: { [weak self](URLData, response, error) -> Void in
do{
let isFileFound:Bool? = FileManager.default.fileExists(atPath: desURL.path)
if isFileFound == true{
print(desURL)
} else {
try FileManager.default.copyItem(at: URLData!, to: desURL)
}
}catch let err {
print(err.localizedDescription)
}
})
downloadTask.resume()
}