iOS 将 Cocos2Dx 场景录制成视频

iOS Record Cocos2Dx scene as video

我正在寻找一种将 cocos2dx 场景保存为视频的方法。最好希望这发生在后台(动画场景对用户不可见)。 我看过几个选项: Everplay - 不允许您下载视频文件并要求场景是开放和可见的。 Kamcord - 看起来它已经停产或什么的,即使它确实有效,它看起来也不支持将视频文件保存到设备 ReplayKit - 需要用户接受录制,我想需要打开场景

我研究过将场景逐帧保存为图像,但运气不佳。

有人知道有什么选择吗?有没有办法访问帧并使用像素缓冲区创建视频?

谢谢!

找到解决办法。基本上做一个 UIView 扩展

Swift 3:

public extension UIView {
    public func toImage() -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(bounds.size, false, 1.0)
        drawHierarchy(in: bounds, afterScreenUpdates: false)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}

您可以根据需要多次获取 UIView 'picture' 以获得所需的 FPS。所以假设你想以 20FPS 的速度进行全屏录制,只需创建一个计时器并每 0.05 秒拍摄一张照片。一旦你有了一系列图像,你就可以使用 AVAssetWriter 将它们组合成一个视频(你可以将图像搜索到视频并找到大量答案)