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)

(评论第二个)和用户“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 回答