gpt4 book ai didi

swift - 如何从快速解析中检索音频文件

转载 作者:可可西里 更新时间:2023-11-01 01:37:35 25 4
gpt4 key购买 nike

我已成功将音频文件保存到 Parse,但无法再次下载。我无法弄清楚 block 应该与 getDataInBackgroundWithBlock 一起使用。以及如何实际保存文件。非常感谢任何帮助!

let query = PFQuery(className: "wordRecordings")
query.whereKey("wordName", equalTo: "\(joinedWord)")

query.findObjectsInBackgroundWithBlock { (objects:[PFObject]?, error:NSError?) -> Void in

if error == nil{
for object in objects! {
let audioFile = object["audioFile"] as! PFFile
audioFile.getDataInBackgroundWithBlock{ (audioFile: NSData, error:NSError?) -> Void in // THIS BLOCK ISNT CORRECT...
if error == nil {
let audioFile = AudioFile(data: audioFile) // THIS WORKS FOR IMAGES BUT NOT AUDIO - HOW DO I CREATE AN AUDIO FILE
}
}
}
} else {
print("Error: \(error!) \(error!.userInfo)")
}
}

感谢下面的@David,这里还有一个带有路径代码的工作解决方案。

let fileString = "\(fileName)"
let documentsDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let path = documentsDirectory.URLByAppendingPathComponent(fileString)

audioFile.getDataInBackgroundWithBlock { (audioFile:NSData?, error:NSError?) -> Void in
if error == nil {
audioFile.writeToURL(path, atomically: true)
} else {
print("error with getData")
}
}

最佳答案

查看官方documentation它应该看起来像这样(我不使用 Swift,所以请多多包涵):

audioFile.getDataInBackgroundWithBlock{ (audioFile: NSData?, error:NSError?) -> Void in
if error == nil {
let path = "path-to-your-file"
if !audioFile.writeToFile(path, atomically: true){
print("Error saving")
}
}
}

我建议您阅读一些教程(例如 here),您可能会在其中获得更好的 Swift 文件处理示例。

更新

显然, block 的两个参数都必须是可选的(参见 here )。您的结果 block 需要是 (audioFile: NSData?, error: NSError?)

类型

关于swift - 如何从快速解析中检索音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34754255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com