当我用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()