0

问题是这样的:我有一个 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 模拟器中预览最终结果(视频+标题)时,我得到以下输出:

注意视图顶部黑色背景上的 Hello Video Label

当我使用 AVAssetExportSession 渲染视频时,我得到了这个输出(所以视频标签在底部):

注意底部的 Hello Video 标签

有谁知道诀​​窍是什么?我错过了什么/做错了什么?

谢谢!

4

1 回答 1

0

答案可以在这里找到

如何使用 AVAssetExportSession 在 AVMutableComposition 之上正确导出 CALayer

于 2012-08-23T03:08:48.140 回答