2016-04-22 13 views
0

Ich mache eine Echtzeit-Video-Anwendung.Und jetzt löse ich den Punkt, der kontinuierlich die Bilder (Frames) sendet, und auch ich kann diese Bilder in einem anderen Laptop erhalten. Aber der Punkt, dass Sie die Bilder in der benutzerdefinierten Ansicht anzeigen und es wie ein Video aussieht? Mit anderen Worten, ich habe viele NSImage-Objekte, und ich möchte sie wie ein Video anzeigen. Verwendung von CGColorSpaceRef? Ich bin neu in Kakao-Programmierung für Mac OS X. Kann jemand mir etwas Code geben?Wie fortlaufende Bilder in der benutzerdefinierten Ansicht anzeigen

Antwort

0
#import "ViewController.h" 
#import <Quartz/Quartz.h> 

@interface ViewController() 
{ 
    NSArray *activityAnimationImages; 
    IBOutlet NSImageView *activityImageView; 
} 
@end 

@implementation ViewController 

- (void)viewDidLoad { 
[super viewDidLoad]; 

// Do any additional setup after loading the view. 

NSMutableArray *array = [NSMutableArray array]; 

for (NSUInteger i = 0; i<=29; i++) 
{ 
    //Preloader is a set of images 
    NSImage *image = [NSImage imageNamed:[NSString stringWithFormat:@"Preloader_10_000%02lu",(unsigned long)i]]; 
    [array addObject:image]; 
} 

activityAnimationImages = [NSArray arrayWithArray:array]; 

//Create layer 
CALayer *layer = [CALayer layer]; 
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"contents"]; 
[animation setCalculationMode:kCAAnimationDiscrete]; 
[animation setDuration:1.0f]; 
[animation setRepeatCount:HUGE_VALF]; 
[animation setValues:activityAnimationImages]; 

[layer setFrame:NSMakeRect(0, 0, 100, 100)]; 
layer.bounds = NSMakeRect(0, 0, 100, 100); 
[layer addAnimation:animation forKey:@"contents"]; 

[activityImageView setLayer:[CALayer layer]]; 
[activityImageView setWantsLayer:YES]; 
[activityImageView.layer addSublayer:layer]; 
} 
+0

Vielen Dank.Lass mich das versuchen. –

+0

@ X.Rodi bitte akzeptieren Sie die Antwort, wenn es funktioniert und hilfreich :) – Jeyamahesan

Verwandte Themen