如何从解析迅速检索音频文件

2024-05-06

我已成功将音频文件保存到 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")
         }
  }

查官方的文档 https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/#//apple_ref/occ/instm/NSData/writeToFile:atomically:它应该看起来像这样(我不使用 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 http://www.ioscreator.com/tutorials/file-management-tutorial-ios8-swift)您可能会在其中获得更好的 Swift 文件处理示例。

Update

显然,块的两个参数都必须是可选的(参见here https://stackoverflow.com/questions/29600588/parse-file-query-and-swift-1-2-error-getdatainbackgroundwithblock)。您的结果块必须是类型(audioFile: NSData?, error: NSError?)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从解析迅速检索音频文件 的相关文章

随机推荐

  • 时间:2019-01-09 标签:c#decimaltoString()转换与逗号(,)

    c decimal toString 转换问题 Example 我有一个十进制值 1 当我使用 toString 将十进制转换为字符串时 它返回 0 10 它返回 COMMA 而不是 DOT 我相信这与您的操作系统设置的文化 地区有关 您可
  • hive查询无法通过jdbc生成结果集

    我是 Hive 和 Hadoop 的新手 在我的教程中 我想将表创建为 import java sql SQLException import java sql Connection import java sql ResultSet im
  • 如何在java中执行复合sql查询?

    如何执行以下查询并通过准备好的语句检索结果 INSERT INTO vcVisitors sid VALUES SELECT LAST INSERT ID 有没有办法同时执行这两个语句 我尝试执行以下操作 Connection con Db
  • Google Sheets - 如何将过滤功能与过滤视图结合起来

    我一直在处理一个包含 100 多行的电子表格 并发现了一种巧妙的方法来合并 隐藏 复选框 该复选框将隐藏 C 列与框旁边指定的特定值 建筑类型 匹配的任何行 为此 我首先创建了一个如下函数 FILTER Data A1 OR Data C1
  • IE 中的表格布局错误(7)

    下面是一个带有表格布局的简单 html 代码 在 FF 中 它看起来就像我认为的那样 在 IE7 中则不然 我究竟做错了什么 我该如何解决它 table cellspacing 0 cellpadding 0 border 1 tbody
  • Android - 如何通过检查已发送的项目来确定电子邮件是否已发送

    我有一个应用程序 我使用意图发送电子邮件 如下所示 TODO attach and send here try Log i getClass getSimpleName send task start String address emai
  • 如果字符串中的第一个字符是逗号,则删除它

    我需要在 javascript 中设置一个函数来删除字符串的第一个字符 但前提是它是逗号 我找到了substr函数 但这将删除任何内容 无论它是什么 我当前的代码是 text value newvalue substr 1 text val
  • 我可以将 UIScrollView 放入另一个 UIScrollView 中吗

    我有一个UIScrollView仅在垂直方向滚动 我需要放置UIScrollView它可以水平移动 就像苹果设备中的AppStore应用程序一样 我不想我们UICollectionView因为我有静态数据并且我只需 3 个水平UIScrol
  • Window.AllowsTransparent 设置为 true 时 wpf 中的运行时错误

    当我设置时 我在运行时抛出异常AllowsTransparency True 我得到一个例外 说WindowStyle不能设置为None if AllowsTransparency设置为 true 即使我明确地说WindowStyle被设定
  • LINQ:根据列值选择重复行

    我试图在我的 DataGrid 中显示那些共享相同列值的行 例如 对于具有相同姓氏的人 我尝试了以下方法 dataGrid ItemsSource dataContext Addresses GroupBy a gt a SurName W
  • 将 fill_ Between() 与 Pandas 数据系列一起使用

    我已经绘制了 使用 matplotlib 时间序列及其相关的置信区间上限和下限 我在 Stata 中计算的 我使用 Pandas 读取 stata csv 输出文件 因此该系列的类型为 pandas core series Series M
  • 我们如何读取给定时间范围内的Kafka主题?

    我需要读取 Kafka 主题中给定时间范围内的消息 我能想到的解决方案是首先找出时间范围开始的最大偏移量 然后继续消费消息 直到所有分区上的偏移量超过时间范围的末尾 有没有更好的方法来解决这个问题 谢谢 好吧 您肯定必须首先搜索适合时间范围
  • PyCharm matplotlib 交互式图形而不阻塞执行

    我阅读了很多有关该主题的堆栈溢出问题 但经过大量实验后我无法弄清楚我的问题 我在 Windows 7 上使用 PyCharm 2016 3 2 但在 OSX 上也有同样的问题 我的解释器是带有 Python 3 6 和 matplotlib
  • 如何在IOS中自定义键盘[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在我的应用程序中为 IOS 创建
  • 阻止 WKWebView 中加载的 url 中的广告

    我正在 webView 中加载 url 现在我想阻止 webView 中的 url 中的广告 我怎样才能实现这个目标 webVw loadRequest NSURLRequest requestWithURL NSURL URLWithSt
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 将 android-sdk 和 sdk 文件夹移动到另一个驱动器

    我的 Windows 位于 128GB SSD 硬盘上 但空间不足 文件夹C Users User AppData Local Android有 2 个文件夹android sdk and sdk使用约 30GB 空间的文件夹 是否可以将这
  • Java 类路径和相对路径

    如果java类路径中有相对路径 那么这是否只是搜索当前工作目录 对于清单文件中声明的类路径也是如此 在清单文件中 它是相对于 jar 所在的目录吗 前任 命令行 java cp somejar jar Or Manifest Class P
  • 如何向 Visual Studio Intellisense 添加按钮

    我想在 Visual Studio 的 IntelliSense 返回的选项列表的顶部添加一个按钮 单击该按钮时 将执行我的自定义代码 这将导致出现弹出窗口 我将其称为 按钮 因为当用户单击该项目时 我希望出现一个弹出窗口 而不是完成用户输
  • 如何从解析迅速检索音频文件

    我已成功将音频文件保存到 Parse 但很难再次下载它 我无法弄清楚 getDataInBackgroundWithBlock 的块应该是什么 以及如何实际保存文件 非常感谢任何帮助 let query PFQuery className