为快速开发的 ios 应用程序检索存储为 PFFile 的视频文件
Posted
技术标签:
【中文标题】为快速开发的 ios 应用程序检索存储为 PFFile 的视频文件【英文标题】:Retrieving video file stored as PFFile for ios application developed in swift 【发布时间】:2015-11-23 08:12:41 【问题描述】:有一个解析类“响应”,其中一个字段是文件类型。通过选择单元格并单击“上传文件”手动将文件上传到每一行的此列。
现在我需要获取这个文件(据我所知应该是 PFFile 类型)并在我的 ios 应用程序中播放这个文件(它是一个视频文件)。
请帮忙!
【问题讨论】:
【参考方案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()
我建议您查看有关 AVPlayer 和 AVPlayerLayer 的 Apple 文档,以了解有关视频播放的更多信息。
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
【讨论】:
以上是关于为快速开发的 ios 应用程序检索存储为 PFFile 的视频文件的主要内容,如果未能解决你的问题,请参考以下文章