更新 - 我已经为回答这个问题添加了50点声望奖励!
我有一个应用程序,需要将一些视频和照片放在一起,以便从中创建一部电影。我正在使用AVMutableComposition。为了能够指导视频如何组合,我必须使用AVMutableVideoComposition。这个东西有一个名为backgroundColor
的属性,Apple文档说:
仅支持纯色BGRA颜色;模式和其他支持 颜色被忽略了。如果渲染的像素缓冲区没有alpha, 忽略背景颜色的alpha值。
我从中理解的是,有一种方法可以将alpha通道添加到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];
它只是不起作用 - 背景保持白色并且不会透明。
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
在Apple的AVVideoCompositionInstruction
文档中,您要设置的属性backgroundColor
属于CGColorRef
类型。
我的赌注是,因为您使用 UIColor 设置backgroundColor
,然后通过 CGColor 属性获取其值,由于某种原因,alpha value不会传递给CGColorRef对象。您知道白色值已通过,因为默认颜色为黑色。
UIColor有一些限制。我建议你阅读以下article。请特别注意文章“UIColor的问题”部分。
我猜你问题的最佳解决方案是直接用 CGColor 定义backgroundColor
(例如使用CGColorCreate),而不是UIColor。