我正在尝试用画中画制作QTMovie。我有两部电影,一部是文件中的视频,另一部是用相机录制的。
我希望相机电影显示在另一个视频上方并且略微透明。我可以使用qttrack将相机电影定位在其他视频上,但我不知道如何更改视频中qttrack的透明度。
这可以使用QTKit吗?
以下是我的代码示例
QTTimeRange fullMovieDuration = QTMakeTimeRange(QTZeroTime, [mCameraMovie duration]);
QTTime startTime = QTMakeTime(0, [mCameraMovie currentTime].timeScale);
QTTrack *cameraTrack = [[mCameraMovie tracks] objectAtIndex:0];
NSRect newCameraRect = NSMakeRect(100, 100, 320, 240);
[cameraTrack setAttribute:[NSValue valueWithRect:newCameraRect] forKey:QTTrackBoundsAttribute];
[mMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
[mMovie insertSegmentOfTrack:cameraTrack timeRange:fullMovieDuration atTime:startTime];
[ibMovieView setMovie:mMovie];
答案 0 :(得分:2)
我能够使用Quicktime来完成它。
这是一个完成它的类别。
标题
#import <QTKit/QTKit.h>
@interface QTTrack (QTTrack_Opacity)
-(void)setOpacity:(float)opacity;
@end
源文件
@implementation QTTrack (QTTrack_Opacity)
-(void)setOpacity:(float)opacity
{
MediaHandler mh = GetMediaHandler([[self media] quickTimeMedia]);
RGBColor color = { (int)(opacity*255) << 8, (int)(opacity*255) << 8, (int)(opacity*255) << 8};
MediaSetGraphicsMode(mh, graphicsModeStraightAlphaBlend, &color);
}
@end