ios - 如何上传录制的音频文件进行解析?

标签 ios swift parse-platform avfoundation

发布了我的代码 here, was getting clipped below .

按照上面的代码,我正在一个已知文件路径位置 soundfileURL 中创建一个名为 sound.caf 的音频文件。

我的问题是如何将此文件上传到 Parse?如何从路径soundfileURL获取代码中的文件对象。

我下面的尝试显然需要工作。我没有运行它,因为我不知道如何将 sound.caf 转换为 PFFile 并上传到 Parse。

func addNamestoParse(obj: Music) {
    println("Doing Parse Stuff now")
    self.showActivityIndicatory(true)

    var className = PFObject(className: "musicrecording")
    className.setObject(obj.name, forKey: "nameofmusic")
    className.setObject(obj.createdOn, forKey: "datcreated")

如何在此处将 SOUND.CAF 文件转换为 PFFILE 并上传到 PARSE?

    className.saveInBackgroundWithBlock {
        (success: Bool, error: NSError?) -> Void in

        if success == true {



        } else {

            println(error)

        }
    }

}

感谢 David Jirman 的 Objective-C 等价物能够推导出 Swift 等价物。下面是代码。

func addNamestoParse(obj: Name) {
    println("Doing Parse Stuff now")

    var className = PFObject(className: "namerecordings")
    className.setObject(obj.name, forKey: "babyname")
    className.setObject(obj.nameSubmitter, forKey: "submittedby")
    className.saveInBackgroundWithBlock {
        (success: Bool, error: NSError?) -> Void in

        if success == true {
            let audioFile = PFFile(name: "mysound.caf", data: NSData(contentsOfURL: self.soundFileURL)!)
            className["audioFile"] = audioFile

            className.saveInBackgroundWithBlock{(success: Bool, error: NSError?) -> Void in

                if success == false {
                    println("error in uploading audio file")
                } else {
                    println("posted successfully")

                }
            }

        } else {

            println(error)

        }
    }

}

最佳答案

https://www.youtube.com/watch?v=4qj1piMAPE0 上的这个很棒的教程之后我的解决方案是 Swift:

    let path = getCacheDirectory().stringByAppendingPathComponent(fileName)
    let filePath = NSURL(fileURLWithPath: path)

    var dataToUpload : NSData = NSData(contentsOfURL: filePath!)!

    let soundFile = PFFile(name: fileName, data: dataToUpload)
    var userSound = PFObject(className:"upload")
    userSound["name"] = "Sara"
    userSound["sound"] = soundFile
    userSound.saveInBackground()

其中 getCacheDirectory() 是教程中使用的函数

关于ios - 如何上传录制的音频文件进行解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29739930/

相关文章:

ios - 使用 Parse 查询和更新投票?

ios - 将 UITextView 中的文本垂直和水平居中

iphone - 我怎样才能使它成为类的私有(private)成员或方法,以便可以在静态库本身而不是库外部访问它?

ios - 在同一个 locationManager 中有两个变量显示不同的位置

ios - Parse & Swift - 如何减少服务器负载/请求?

ios - 从 Parse 中的指针访问另一个类列

ios - AppCode 打开 .storyboard 文件作为纯 XML

iphone - GCD 串行队列是否使用所有 CPU 内核?

ios - GCD 实现不适用于 PARSE 查询 (Swift)

android - 从 parse.com 检索数组并将值添加到本地数组 (Android)