将多个文本添加到AVMutableVideoComposition

时间:2016-11-19 00:34:46

标签: ios swift3 avassetexportsession avmutablecomposition catextlayer

我正在使用AVMutableComposition创作视频。我需要在不同的时间间隔添加文本叠加。 I,E。

  1. 显示字符串" abc"从0秒到2秒之后隐藏
  2. 显示字符串" xyz"从1秒到1.5秒之后隐藏
  3. 显示字符串" qwe"从2秒到5秒
  4. 我使用下面的代码添加文字叠加层,但是它是静态的,并保留在视频中。

    let parentLayer = CALayer()
    parentLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height)
    let videoLayer = CALayer()
    videoLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height)
    
    let subtitleText = CATextLayer()
    subtitleText.font = font
    subtitleText.frame = CGRect(x: 0, y: 100, width: size.width, height: 50)
    subtitleText.string = "hhh"
    subtitleText.alignmentMode = kCAAlignmentCenter
    subtitleText.foregroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1).cgColor
    subtitleText.displayIfNeeded()
    
    
    parentLayer.addSublayer(videoLayer)
    parentLayer.addSublayer(subtitleText)
    

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果有人需要回答这个问题,很抱歉我无法找到直接的解决方案,所以我做了一个代价高昂的工作。

  • 根据文字的时间范围修剪视频
  • 为修剪过的视频添加文字
  • 然后合并这些部分