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