如何将音频数据存储到文档目录中?

Posted

技术标签:

【中文标题】如何将音频数据存储到文档目录中?【英文标题】:How to store Audio Data into Documents Directory? 【发布时间】:2018-03-28 16:44:46 【问题描述】:

我有一个AVAudioPlayer,我想将其数据作为音频文件存储到文档目录中。但我似乎无法让它工作。 我尝试过使用FileManagerAudioData.write(to: URL) 和许多其他函数,但它们都抛出错误,指出文件不存在或无法保存在文档文件夹中。

【问题讨论】:

您是否正在下载文件以存储到 doc 文件夹? @RazibMollick 是的 看我的回答,如果对你有用,请采纳 【参考方案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()

【讨论】:

以上是关于如何将音频数据存储到文档目录中?的主要内容,如果未能解决你的问题,请参考以下文章

解码后的音频数据如何存储在 ffmpeg AVFrame 中?

如何直接保存到持久存储,而不将数据保存到内存中

如何将 sqlite3 数据库文件存储在应用程序的 Library 目录中?

文档目录中保存的数据消失

如何将现有的非文档核心数据存储转换为 uimanageddocument?

录制音频并保存到文档目录后无法使用 AVAudioPlayer 播放音频文件