2

SpriteKit を使用してビデオを再生しています。これは、AVPlayer から SKVideoNode を作成するコードです。

    func CreateVideoViewWithAVPlayer(player:AVPlayer)
{
    video = SKVideoNode(AVPlayer: player)
    let frameLayer=AVPlayerLayer(player: player)
    //video?. = CGRectMake(0, 0, 100, 100)
    video?.size = CGSize(width: 1024, height: 768)
    println(player.currentItem)

    video?.anchorPoint = CGPoint(x: 0, y: 0)
    video?.position = CGPoint(x: 0, y: 0)

    backgroundColor = SKColor.blackColor()
    self.addChild(video!)
}

そして、関数を与える AVPlayer を作成します。

        let scene01 = GameScene(size: view.bounds.size)
    scene01.CreateVideoViewWithAVPlayer(player!)

しかし、これを「player.play()」と呼ぶと、最初のフレームを表示するだけで、それ以上は表示されません。しかし、「CreateVideoViewWithAVPlayer」関数で「ビデオ」を使用すると、再生できます。

別: このコードを使用する場合"

        skView.presentScene(scene01)
       //self.view.addSubview(skView)

(コメント2回目) そしてユーザー「player.play()」で再生できます(音は聞こえます)。しかし、これを使用すると:

           skView.presentScene(scene01)
       self.view.addSubview(skView)

また、最初のフレームが表示されます。もう実行できません。

私が間違っていることはありますか?助けて!どうもありがとう。

4

1 に答える 1

1

理由もなく。AVPlayer を使用して SKVideoNode の再生または一時停止を制御することはできません。ただし、AVPlayer を介して再生状態を監視することができます。

SKVideoNode を再生または一時停止するには、使用する必要があります

video.play() / video.pause() // (video you declared here is the instance of SKVideoNode)

于 2015-09-17T07:34:46.263 に答える