0

解析クラス「Response」を持ち、フィールドの 1 つがファイル型です。セルを選択して「ファイルのアップロード」をクリックすることにより、各行のこの列に手動でファイルをアップロードしています。

次に、このファイル (私が理解しているように PFFile タイプである必要があります) を取得し、iOS アプリでこのファイル (ビデオ ファイル) を再生する必要があります。

助けてください!

4

1 に答える 1

1

ビデオ ファイルをストリーミングするだけで、実際にダウンロードする必要はないと仮定すると (時間がかかる場合があります)、"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 のドキュメントを参照することをお勧めします。

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 に答える