当我用SpriteKit创建视频对象时

let background = SKVideoNode(videoFileNamed: "Video.mov")


我只能通过以下命令进行操作:

background.play()


如何创建无限循环以使其始终播放?

我已经找到了有关此问题的一些答复,但仅在Objective-C中,而不在Swift中。我必须使用AVPlayer()但如何?

谢谢你的帮助,

最佳答案

我通过编译来自stackoverflow的不同先例响应找到了解决方案。这是工作代码(swift 2.2)。这段代码使用场景中的SKSVideoNode对象(使用AVPlayer初始化程序)无缝地循环播放视频:

override func didMoveToView(view: SKView) {

    let urlStr = NSBundle.mainBundle().pathForResource("Video_Socle", ofType: "mov")
    let url = NSURL(fileURLWithPath: urlStr!)

    player = AVPlayer(URL: url)

 NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayTo     EndTimeNotification
   , object: player!.currentItem, queue: nil)
    { notification in
        let t1 = CMTimeMake(5, 100);
        self.player!.seekToTime(t1)
        self.player!.play()
    }


    videoNode = SKVideoNode(AVPlayer: player!)
    videoNode!.position = CGPointMake(frame.size.width/2, frame.size.height/2)
    videoNode!.size = CGSize(width: 2048, height: 1536)
    videoNode!.zPosition = 0


    background.addChild(videoNode!)
    videoNode!.play()

08-04 03:37