【发布时间】:2021-01-10 14:44:24
【问题描述】:
在我的应用程序中,我想从音乐库中导出文件并将它们保存到 Documents 目录。我已经从音乐库中获取了文件列表,并且得到了每个文件的 url。但是我还有两个问题:
-
我只能以“m4a”格式导出文件,但我想以音乐库中的文件格式(mp3、wav、aac 或其他)导出文件
-
如何使用 url 将音乐库中的文件保存到 Documents 目录? 我的代码现在看起来像这样:
private func exportFile(with assetURL: URL, completionHandler: @escaping (_ fileURL: URL?, _ error: Error?) -> ()) { let asset = AVURLAsset(url: assetURL) guard let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetAppleM4A) else { completionHandler(nil, nil) return } let fileURL = URL(fileURLWithPath: NSTemporaryDirectory()) .appendingPathComponent(NSUUID().uuidString) .appendingPathExtension("m4a") exporter.outputURL = fileURL exporter.outputFileType = AVFileType.m4a exporter.exportAsynchronously { if exporter.status == .completed { completionHandler(fileURL, nil) } else { completionHandler(nil, exporter.error) } } func downloadFile(file: MPMediaItem?, callback: @escaping () -> ()) { guard let file = file, let url = file.url else { return } exportFile(with: url) { fileURL, error in guard let fileURL = fileURL, error == nil else { print(error?.localizedDescription) return } //Here I'd like to save file to Documents dir print("\(fileURL)") } callback() }
【问题讨论】:
标签: ios swift apple-musickit