问题是这样的:我有一个 AVMutableVideoComposition,它有一个 titleLayer (CATextLayer)。
我想使用 AVPlayerLayer 和 AVSynchronizedLayer 向用户显示包含此标题的预览。我这样设置图层:
- (CATextLayer*)buildTitleLayer {
CATextLayer *titleLayer = [CATextLayer layer];
// titleLayer.font = @"Helvetica";
titleLayer.fontSize = 15.0;
//?? titleLayer.shadowOpacity = 0.5;
titleLayer.backgroundColor = [UIColor blackColor].CGColor;
titleLayer.alignmentMode = kCAAlignmentCenter;
titleLayer.frame = CGRectMake(0, 0, _videoSize.width, _videoSize.height / 6); //You may need to adjust this for proper display
return titleLayer;
}
当我设置组合时,我这样做:
[compositionVideoTrack setPreferredTransform:clipVideoTrack.preferredTransform];
一切都按预期运行,但有一个例外:
当我在 iPhone 模拟器中预览最终结果(视频+标题)时,我得到以下输出:
当我使用 AVAssetExportSession 渲染视频时,我得到了这个输出(所以视频标签在底部):
有谁知道诀窍是什么?我错过了什么/做错了什么?
谢谢!