如何从解析swift中检索音频文件
Posted
技术标签:
【中文标题】如何从解析swift中检索音频文件【英文标题】:how to retrieve audio file from parse swift 【发布时间】:2016-01-12 21:37:53 【问题描述】:我已成功将音频文件保存到 Parse,但我正在努力再次下载。我无法确定与 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")
【问题讨论】:
取决于你想对音频文件做什么——例如,如果你想播放音频,你可以直接实例化你的AVAudioPlayer
NSData
(甚至使用@ 987654325@ 和 PFFile
的 url
和数据流 - 请注意 AVAudioPlayer 不支持远程流的事实)。如果要保存音频文件,可以使用NSData
的writeToFile:atomically:
。让我知道它是否有帮助或您需要其他东西。
嗨,大卫,非常感谢您查看此内容。我将如何快速写入文件?
【参考方案1】:
查看官方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 文件处理示例。
更新
显然,块的两个参数都必须是可选的(请参阅here)。您的结果块必须是 (audioFile: NSData?, error: NSError?)
【讨论】:
嗨 - 我根据您建议的教程尝试了 writeToURL,但 PFDataResultBlock 仍然不正确。我尝试了无数的想法,但仍然卡住了!有什么想法吗? hm,显然块的两个参数都必须是可选的(参见here)。尝试将您的结果块设为(audioFile: NSData?, error: NSError?)
类型。有效吗?
确实如此!我刚刚在 Parse 文档中也发现了这一点!我一定是整天闭着眼睛!我已更新我的问题以包含答案。非常感谢您的帮助!以上是关于如何从解析swift中检索音频文件的主要内容,如果未能解决你的问题,请参考以下文章