2010-07-07 7 views
3

알파 채널이있는 AVPlayerLayer에서 비디오를 재생 한 사람이 있습니까?알파 마스크가있는 AVPlayerLayer

그렇다면 어떻게 가능합니까? 필자는 순수 알파 채널 비디오 사용, 대상 레이어에 블렌드 모드 적용 및 모든 프레임 직접 애니메이션 적용을 포함한 여러 가지 솔루션을 시도했습니다. 유일하게 실행할 수있는 솔루션은 후자이며 전화를 너무 많이 사용하지 못하게합니다. 내가 마스크를 사용

+1

여기에 어떤 뉴스가 있습니까? 당신의 문제를 해결 했습니까? – headkit

답변

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로한다.

+1

예, 마스크는 정적 이미지입니다. 마스크를 애니메이션화해야하는 경우 어떻게해야합니까? 프레임 셋 애니메이션을 마스크로 사용할 수 있다는 것을 알고 있지만 그것이 우리가 찾고있는 것이 아니라 투명한 비디오를 재생하는 것이지 PNG 프레임이 아닙니다. – alex