你如何从parse.com查询视频文件

时间:2015-04-16 17:54:28

标签: ios uiview parse-platform

我知道如何从Parse检索图像文件并将其存储在UIImageView中,但是如何从Parse.com检索视频(或电影)文件并将其存储在要播放的UIView中(使用AVPlayer)?

1 个答案:

答案 0 :(得分:0)

在您的文件中导入以下内容:

import Parse import AVFoundation import AVKit

在您的类定义之前添加它,以便您可以在任何地方访问它作为全局变量:

public var audioPlayer = AVPlayer() public var songNumber = Int()

将此添加到您的班级定义中:AVAudioPlayerDelegate

设置数组以存储数据:

var idArray = [String]() var nameArray = [String]()

你的viewDidLoad + getSongs函数:

 override func viewDidLoad() {
        super.viewDidLoad()

        var objectQuery = PFQuery(className: "Songs")
        objectQuery {
            (objectsArray: [PFObject]?, error: NSError?) -> Void in

            var objectIDs = objectsArray!

             print(objectIDs)

            for i in 0...objectIDs.count-1 {
                    self.iDArray.append(objectIDs[i].valueForKey("objectId") as! String)
                    self.nameArray.append(objectIDs[i].valueForKey("songName") as! String)

                    self.tableView.reloadData()
                }

        }
    }

 func getSongs () {
    var songQuery = PFQuery(className: "Songs")
    songQuery.getObjectInBackgroundWithId(idArray[songNumber], block: {
        (object: PFObject?, error : NSError?) -> Void in

        if let audioFile = object?["songFile"] as? PFFile {
            let audioFileUrlString: String = audioFile.url  
            let audioFileUrl = NSURL(string: audioFileUrlString)!
            audioPlayer = AVPlayer(URL: audioFileUrl)
            audioPlayer.play()
        }
    })
}

在此代码之后,您可以在任意位置获取getSongs函数,或者如果是TableView,则可以在indexPath.row

的单元格中设置它。

由于问题有点宽泛,我给出了一个广泛的答案,因为我不确定你想如何设置它以及你想在哪个位置/在什么触发器下?

这是我引用的一个相关问题,以及Parse中的文档。

即使问题看似无关,但答案和背景都在这个问题/答案中:Could not cast value of type PFFile to NSURL此链接向您展示如何查询和转换,以便您可以播放音乐文件。

您还应该查看解析文档:File Queries Parse Docs