解析クラス「Response」を持ち、フィールドの 1 つがファイル型です。セルを選択して「ファイルのアップロード」をクリックすることにより、各行のこの列に手動でファイルをアップロードしています。
次に、このファイル (私が理解しているように PFFile タイプである必要があります) を取得し、iOS アプリでこのファイル (ビデオ ファイル) を再生する必要があります。
助けてください!
解析クラス「Response」を持ち、フィールドの 1 つがファイル型です。セルを選択して「ファイルのアップロード」をクリックすることにより、各行のこの列に手動でファイルをアップロードしています。
次に、このファイル (私が理解しているように PFFile タイプである必要があります) を取得し、iOS アプリでこのファイル (ビデオ ファイル) を再生する必要があります。
助けてください!
ビデオ ファイルをストリーミングするだけで、実際にダウンロードする必要はないと仮定すると (時間がかかる場合があります)、"Response" クラスで 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 オブジェクトにフィードします。AVPlayer と AVPlayerLayer を使用するには、AVKit をインポートする必要があることに注意してください。プレーヤーを設定する関数は次のとおりです。
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 のドキュメントを参照することをお勧めします。