更新-我为回答这个问题增加了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];,它只是不工作-背景保持白色和不透明。
任何帮助都将不胜感激,谢谢!
发布于 2011-07-16 19:10:55
在苹果的AVVideoCompositionInstruction文档中,您想要设置的属性backgroundColor是CGColorRef类型。
我敢打赌,因为您使用UIColor设置了alpha值,然后才通过CGColor属性获得它的值,因此由于某种原因,alpha值没有传递到CGColorRef对象中。您知道,由于默认颜色是黑色,所以会传递白色值。
UIColor有一些局限性。我建议你读下面的文章。请特别注意本文的“UIColor的问题”节。
我猜解决问题的最佳解决方案是直接使用CGColor (例如使用CGColorCreate )而不是UIColor来定义CGColorCreate。
https://stackoverflow.com/questions/6678743
复制相似问题