0

有一个解析类“响应”,其中一个字段是文件类型。通过选择单元格并单击“上传文件”手动将文件上传到每一行的此列。

现在我需要获取这个文件(据我所知应该是 PFFile 类型)并在我的 iOS 应用程序中播放这个文件(它是一个视频文件)。

请帮忙!

4

1 回答 1

1

假设您只想流式传输视频文件而不实际下载它(这可能需要一段时间),您只需要在“响应”类中获取 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 的文档,以了解有关视频播放的更多信息。

AVPlayer:https ://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html

AVPlayerLayer:https ://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayerLayer_Class/index.html#//apple_ref/occ/cl/AVPlayerLayer

于 2016-01-28T13:21:03.193 回答