当我使用SpriteKit
创建视频对象时let background = SKVideoNode(videoFileNamed: "Video.mov")
我只使用命令进行一次游戏:
background.play()
如何创建无限循环以使其一直播放?
我找到了一些关于这个问题的回复,但只在Objective-C中,而不是在Swift中。我必须使用AVPlayer()但是如何?
感谢您的帮助,
答案 0 :(得分:0)
我通过从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()