我想将文本(例如字幕或计时器)渲染成视频并将其导出。我确实通过在每个帧上分别添加给定的CATextLayer
和beginTime
来添加新的duration
来使其工作,但是正如您可以想象的那样,对于那些超过两分钟。
所以我的问题是:什么是最好的/正确的方法,以使我的应用程序不会用完内存?
我将具有给定CATextLayer
和beginTime
的{{1}}添加到父层,然后通过duration
将其渲染到视频中。
AVVideoCompositionCoreAnimationTool
// Current time Label
let currentTimeLayer = ExportTextLayer()
currentTimeLayer.fontSize = scaleForVideoSize(value: 36.0)
currentTimeLayer.frame = CGRect(x: scaleForVideoSize(value: 60), y: size.height - scaleForVideoSize(value: 385), width: size.width, height: scaleForVideoSize(value: 50))
currentTimeLayer.string = "Current lap time: Some lap time"
currentTimeLayer.beginTime = currentTime
currentTimeLayer.duration = dataDuration
overlayLayer.addSublayer(currentTimeLayer)
是一个简单的CATextLayer(),具有一些预配置的属性。