我有一个 tableViewCell,我想在其中播放通常为 .m4a 的声音。\n我已经AVAudioPlayer像这样全局声明了我的实例:
var player = AVAudioPlayer()\nRun Code Online (Sandbox Code Playgroud)\n\n然后我下载声音,将其放在文档中的目录中。但是,当我尝试从目录播放声音文件时,我收到此错误:
\n\nOpen failed\nThe operation couldn\xe2\x80\x99t be completed. (OSStatus error 2003334207.)\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的代码我不知道你有什么问题。我在模拟器中找到了可以用 QuickTimePlayer 播放的文件。
\n\nfunc downloadSound(_ message: ChatVoiceMessageStructure) {\n guard let url = service?.networkManager.CDNURL else { return }\n let doanloadURL = URL(string: url.appending(message.name!))\n let docUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!\n let desURL = docUrl.appendingPathComponent("tmpsong.m4a")\n var downloadTask:URLSessionDownloadTask\n let request = URLRequest(url: doanloadURL!)\n downloadTask = URLSession.shared.downloadTask(with: request, completionHandler: { [weak self](URLData, response, error) -> Void in\n …Run Code Online (Sandbox Code Playgroud) 我编写了一个 React Native 应用程序,它下载一个文件并将其保存到文档目录中。
该应用程序给了我这样的路径:
/Users/laurent/Library/Developer/CoreSimulator/Devices/SOMEID/data/Containers/Data/Application/SOMEID/Documents
并使用 macOS Finder 我可以看到该文件确实已创建。
我的问题是如何从 iOS 模拟器查看这个文件?例如,如果我单击“文件”应用程序,则看不到该文件。基本上,该文件是否可供用户从某处使用,如果可以,从何处获得?或者我可能需要将它保存到不同的目录?
这是我的文件夹结构
为此,我想将此贴纸文件夹复制到文档目录,我使用了以下代码
let fileManager = FileManager.default
let documentsUrl = fileManager.urls(for: .documentDirectory,
in: .userDomainMask)
guard documentsUrl.count != 0 else {
return // Could not find documents URL
}
let finalDatabaseURL = documentsUrl.first!.appendingPathComponent("Stickers")
if !( (try? finalDatabaseURL.checkResourceIsReachable()) ?? false) {
print("DB does not exist in documents folder")
let documentsURL = Bundle.main.resourceURL?.appendingPathComponent("Stickers")
do {
try fileManager.copyItem(atPath: (documentsURL?.path)!, toPath: finalDatabaseURL.path)
} catch let error as NSError {
print("Couldn't copy file to final location! Error:\(error.description)")
}
} else {
print("Database file …Run Code Online (Sandbox Code Playgroud)