使用 Swift 的 SKVideoNode 中的垂直视频方向问题
Issues with vertical video orientation in SKVideoNode using Swift
以下代码显示我的视频文件在正确的 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
非常感谢!
最终找到了解决方法:
// 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
以下代码显示我的视频文件在正确的 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
非常感谢!
最终找到了解决方法:
// 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