iOS将Cocos2Dx场景录制为视频

时间:2016-12-13 19:21:16

标签: ios video cocos2d-x render

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

我考虑将场景保存为一帧一帧的图像,但那里没有太多运气。

有谁知道任何选项?有没有办法访问帧并使用pixelbuffer创建视频?

谢谢!

1 个答案:

答案 0 :(得分:1)

找到解决方案。基本上做一个UIView扩展

斯威夫特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'图片'您所需的FPS需要的次数。所以说你想在20FPS做一个全屏记录,只需创建一个计时器并每隔0.05秒拍一张照片。一旦你有一系列图像,你可以使用AVAssetWriter将它们组合成一个视频(你可以只搜索图像到视频并找到大量的答案)