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;

маска представляет собой png-файл с прозрачностью.

person Bamandr    schedule 30.11.2010
comment
Да, но ваша маска представляет собой статичное изображение. Что, если мне нужно, чтобы маска тоже была анимирована. Я знаю, что у вас может быть анимация с набором фреймов в качестве маски, но это не то, что мы ищем, это воспроизведение прозрачного видео, а не кадров png. - person alex; 03.10.2011