AVVideoComposition不会将文本添加到视频 - iOS 10.3

时间:2017-07-30 03:58:26

标签: ios swift3 catextlayer avvideocomposition

我最近发布了question关于使用textOverlay导出视频的问题(使用bolder)。我正在尝试使用以下方法在swift中对视频应用lighter叠加层:

AVVideoComposition

问题 当我使用CATextLayer分配 @IBOutlet weak var subTitle1: UITextField! func applyVideoEffectsToComposition(_ composition: AVMutableVideoComposition!, size: CGSize) { // 1 - Set up the text layer let subTitle1Text = CATextLayer() subTitle1Text.font = "Helvetica-Bold" as CFTypeRef subTitle1Text.frame = CGRect(x: 0, y: 0, width: size.width, height: 100) subTitle1Text.string = subTitle1.text // subTitle1Text.string = "Sheep" ****No subtitle on output video if replace above line with this one **** subTitle1Text.alignmentMode = kCAAlignmentCenter subTitle1Text.foregroundColor = UIColor.white.cgColor // 2 - The usual overlay let overlayLayer = CALayer() overlayLayer.addSublayer(subTitle1Text) overlayLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height) overlayLayer.masksToBounds = true // 3 - set up the parent layer let parentLayer = CALayer() let videoLayer = CALayer() parentLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height) videoLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height) parentLayer.addSublayer(videoLayer) parentLayer.addSublayer(overlayLayer) composition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videoLayer, in: parentLayer) } 时,我会获得所需的带有文字的输出视频。但是,如果我要用textfield等静态文本替换let subTitle1Text : CATextLayer属性,我的字幕上不会有任何文字。

当我使用subTitle1Text.string进行预览时,我可以看到视频上的预期文字,但是在保存视频时subTitle1Text.string = "Sheep"没有添加字幕。

所以我的问题是,这种异常行为的原因是什么?

0 个答案:

没有答案