基本上 SKVideoNode 不会尊重 AVPlayer 的速率。
默认情况下,SKVideoNode 无法控制播放速率。然而,SKVideoNode 可以用一个 AVPlayer(它本身包含一个 AVPlayerItem)来初始化。此 AVPlayer 的属性速率可以在 0 到 2 之间变化(1 是正常速度)。还有方法setRate:time:atHostTime:。
所以这个利率是行不通的。你有同样的问题吗?如果没有办法解决这个问题?还有另一种播放视频和更改 SKScene 中的帧速率的方法吗?
func setupVideo() {
// play video
let urlStr = NSBundle.mainBundle().pathForResource("sample", ofType: "mp4")
let url = NSURL(fileURLWithPath: urlStr!)
player = AVPlayer(URL: url)
videoNode = SKVideoNode(AVPlayer: player!)
videoNode?.position = CGPointMake(frame.size.width/2, frame.size.height/2)
videoNode?.size = CGSize(width: frame.size.width, height: frame.size.height)
videoNode?.zPosition = 1
addChild(videoNode!)
player!.rate = 0.25
videoNode!.play()
}
我在哪里添加 player!.rate = 0.25 并不重要,它永远不会改变。