AVPlayerLayer с алфа маска

Някой има ли видео, което се възпроизвежда на AVPlayerLayer с алфа канал?

Ако е така, как е възможно? Опитах много различни решения, включително използване на видео с чист алфа канал, прилагане на режими на смесване към целевия слой и анимиране на всеки кадър сам. Единственото работещо решение е последното и то натоварва телефона твърде много.


person SageAMDP    schedule 07.07.2010    source източник
comment
някакви новини тук? реши ли проблема си?   -  person headkit    schedule 24.07.2012


Отговори (1)


използвам маска,

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: file];

AVURLAsset* url = [AVURLAsset URLAssetWithURL:fileURL options:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey]];

AVPlayerItem* pitem = [AVPlayerItem playerItemWithAsset:url1];
AVPlayer*player  = [AVPlayer playerWithPlayerItem:pitem1];

pv = [[PlayerView alloc] initWithFrame:CGRectMake(0,0, 100, 100)];
[pv setPlayer:player];

UIImageView*iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mask"]];
pv.layer.mask = iv.layer;

mask е png-файл с прозрачност.

person Bamandr    schedule 30.11.2010
comment
Да, но маската ви е статичен образ. Ами ако трябва и маската да е анимирана. Знам, че можете да имате анимация с набор от рамки като маска, но това не е това, което търсим, е да възпроизвеждаме прозрачно видео, а не png рамки - person alex; 03.10.2011