更新-我为回答这个问题添加了50点声望奖励!

我有一个应用程序,需要将一些视频和照片放在一起以从中创建电影。我为此使用AVMutableComposition。为了能够指示它如何构成视频,我必须使用AVMutableVideoComposition。这个东西有一个叫做backgroundColor的属性,Apple Documentation说:



我从中了解到,有一种方法可以将alpha channel 添加到backgroundColor中,但我只是不了解如何。 If the rendered pixel buffer does not have alpha, the alpha value of the background color is ignored.是什么意思?以及我如何添加这样的东西?

如果我只做myVideoCompositionInstruction.backgroundColor = [[UIColor colorWithWhite:1 alpha:0] CGColor];,那将是行不通的-背景保持白色且不会变得透明。

任何帮助将不胜感激,谢谢!

最佳答案

在Apple的AVVideoCompositionInstruction文档中,要设置的属性backgroundColor的类型为CGColorRef

我的赌注是,因为您要使用 UIColor 设置backgroundColor,然后才通过 CGColor 属性获取它的值,由于某种原因,alpha值不会传递到CGColorRef对象中。您知道会通过白色值,因为默认颜色是黑色。

UIColor有一些限制。我建议您阅读以下article。请特别注意本文的“UIColor的问题”一节

我猜对于您的问题的最佳解决方案是直接使用 CGColor (例如,使用CGColorCreate)而不是UIColor来定义backgroundColor

关于iphone - 如何为AVVideoComposition设置透明背景?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6678743/

10-12 00:15