Я хочу визуализировать текст (например, субтитры или, в моем случае, таймер) в видео и экспортировать его.Я заставил его работать, добавив новые CATextLayer
с заданными beginTime
и duration
для каждого кадра в основном, но, как вы можете себе представить, это выходит из-под контроля памяти для видео, которые длиннее двух минут.
Итак, мой вопрос: Каков наилучший / правильный способ сделать это, чтобы моему приложению не хватило памяти?
Я добавил CATextLayer
с данными beginTime
и 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)
ExportTextLayer
- это простой CATextLayer () с некоторыми предварительно настроенными свойствами.