2013-04-20 50 views
0

我使用AVMutableComposition在视频中使用CATextLayer设置文本,并且正在显示文本,但我无法在屏幕上设置其位置......使用此代码文本正在显示,但它显示在左侧屏幕和被削减一半...如何在iphone中使用CATextLayer设置视频中的文本位置?

有没有人帮我弄清楚这个疑难问题真的得到了这里,而不是击中能够找到解决方案..pls帮助我

代码我使用的是...

AVAssetTrack * clipVideoTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];

[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:clipVideoTrack atTime:kCMTimeZero error:nil]; 

[compositionVideoTrack setPreferredTransform:[[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] preferredTransform]]; 

CGSize videoSize = [clipVideoTrack naturalSize]; 


UIImage *myImage = [UIImage imageNamed:[arrClipArt objectAtIndex:selectedClipArt.tag-200]];//<=======================code to set the Image using CALayer 
CALayer *aLayer = [CALayer layer]; 
aLayer.contents = (id)myImage.CGImage; 
aLayer.frame = CGRectMake(selectedClipArt.frame.origin.x-imgMovieThumbnail.frame.origin.x, selectedClipArt.frame.origin.y-imgMovieThumbnail.frame.origin.y, 400, 400); 
aLayer.opacity = 1.0; 
CALayer *parentLayer = [CALayer layer]; 
CALayer *videoLayer = [CALayer layer]; 
parentLayer.frame = CGRectMake(0, 0, videoSize.width, videoSize.height); 
videoLayer.frame = CGRectMake(0, 0, videoSize.width, videoSize.height); 
[parentLayer addSublayer:videoLayer]; 
[parentLayer addSublayer:aLayer]; 

CATextLayer *titleLayer = [CATextLayer layer];//<========code to set the text 
titleLayer.string = txtIntro.text; 
titleLayer.font = (__bridge CFTypeRef)(txtFont.text); 
titleLayer.fontSize = 100; 
//?? titleLayer.shadowOpacity = 0.5; 
titleLayer.alignmentMode = kCAAlignmentCenter; 
titleLayer.bounds = CGRectMake(400,0, 600, videoSize.height/2); //You may need to adjust this for proper display 

// titleLayer.frame = CGRectMake(100,100,50,30); [parentLayer addSublayer:titleLayer];

+0

可以请你给我建议你如何解决这个问题? – 2015-08-03 05:36:21

+0

请在这个链接看到我的问题..http://stackoverflow.com/questions/31780060/how-to-set-catextlayer-in-video-according-to-frame – 2015-08-03 06:55:11

+0

请检查下面给出的答案,并尝试设置它使用CGPointMake的位置。 – 2015-08-03 11:21:53

回答

1

尝试设置titleLayer的位置。

titleLayer.position = CGPointMake (100,100); 

而titleLayer.frame确实对我有用。

+0

在我的案例中CATextLayer文字显示模糊 – 2017-06-22 11:28:47

相关问题