有一个解析类“响应”,其中一个字段是文件类型。通过选择单元格并单击“上传文件”手动将文件上传到每一行的此列。
现在我需要获取这个文件(据我所知应该是 PFFile 类型)并在我的 iOS 应用程序中播放这个文件(它是一个视频文件)。
请帮忙!
有一个解析类“响应”,其中一个字段是文件类型。通过选择单元格并单击“上传文件”手动将文件上传到每一行的此列。
现在我需要获取这个文件(据我所知应该是 PFFile 类型)并在我的 iOS 应用程序中播放这个文件(它是一个视频文件)。
请帮忙!
假设您只想流式传输视频文件而不实际下载它(这可能需要一段时间),您只需要在“响应”类中获取 PFObject。获得对象后,您可以获得对保存视频的 PFFile 的引用并访问其 URL 属性:
// define these as class properties:
var player:AVPlayer!
var playerLayer:AVPlayerLayer!
// write all of the below somewhere in your ViewController, e.g. in viewDidLoad:
var videoUrl:String!
let query = PFQuery(className: "Response")
query.getObjectInBackgroundWithId("objectId123") {
(object:PFObject?, error:NSError?) in
if (error == nil && object != nil) {
let videoFile = object!["keyForVideoPFFile"] as! PFFile
videoUrl = videoFile.url
self.setupVideoPlayerWithURL(NSURL(string: videoUrl)!)
}
}
在上面的代码中,您将视频的 URL 提供给将流式传输视频的 AVPlayer 对象。请注意,您需要导入 AVKit 才能使用 AVPlayer 和 AVPlayerLayer。设置播放器的功能如下:
func setupVideoPlayerWithURL(url:NSURL) {
player = AVPlayer(URL: url)
playerLayer = AVPlayerLayer(player: self.player)
playerLayer.videoGravity = AVLayerVideoGravityResizeAspect
playerLayer.frame = self.view.frame // take up entire screen
self.view.layer.addSublayer(self.playerLayer)
player.play()
}
我建议查看 Apple 关于 AVPlayer 和 AVPlayerLayer 的文档,以了解有关视频播放的更多信息。