使用Swift在SKVideoNode中使用垂直视频方向的问题

时间:2018-01-19 19:38:25

标签: ios swift video avplayer skvideonode

以下代码以正确的zPosition显示我的视频文件以及我正在使用的其他元素,创建了一个背景视频。

我遇到的问题是垂直视频(1080x1920像素)逆时针旋转90度,并被拉伸以适合横向视频。如何确保正确的方向而不会牺牲我对zPosition使用SKVideoNode的需求?

let videoNode: SKVideoNode? = {

    guard let urlString = Bundle.main.path(forResource: "merry", ofType: "mov") else {
        return nil
    }

    let url = URL(fileURLWithPath: urlString)
    let item = AVPlayerItem(url: url)
    player = AVPlayer(playerItem: item)

    return SKVideoNode(avPlayer: player)

}()

videoNode?.position = CGPoint( x: frame.midX, y: frame.midY)
videoNode?.size = self.frame.size
videoNode?.zPosition = 20
addChild((videoNode)!)

player.play()
player.volume = 0

非常感谢!

1 个答案:

答案 0 :(得分:4)

最终得到了一个解决方法:

// fix to rotate vertical video by 90 degrees and resize to fit....
videoNode?.zRotation = CGFloat(-Double.pi) * 90 / 180
videoNode?.size.width = self.frame.size.height
videoNode?.size.height = self.frame.size.width