2 Stimmen

Erstellung eines Schnappschusses einer Ansicht zur Laufzeit erforderlich

Ich muss einen Schnappschuss von meiner aktuellen iPad-Ansicht machen. Diese Ansicht lädt und spielt ein Video ab. Ich fand diese Funktion, die fast wirklich gut funktioniert.

- (UIImage*)captureView:(UIView *)view {
    CGRect rect =  [[UIScreen mainScreen] bounds];   
    UIGraphicsBeginImageContext(rect.size);  
    CGContextRef context = UIGraphicsGetCurrentContext();    
    [view.layer renderInContext:context];    
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext();     
    return img;
}

(Quelle aus: LINK )

Das Problem ist, dass das aktuelle Bild des abspielenden Videos nicht erfasst wird, sondern nur die Ansicht, aber ohne Video-Inhalt. Habe ich vergessen, die Anzeige zu aktualisieren oder etwas anderes vor dem Speichern des Bildes? Gibt es eine spezielle Funktion, die die aktuellen Bildschirmwerte ausliest?

Vielen Dank für Ihre Zeit und Hilfe.

0voto

Macmade Punkte 50817

Haben Sie versucht, die UIGetScreenImage () Funktion?

Sie ist privat, aber Apple erlaubt ihre Verwendung, so dass Ihre App für den App Store validiert wird, auch wenn Sie sie verwenden.

Sie müssen nur seinen Prototyp deklarieren, damit der Compiler sich nicht beschwert:

CGImageRef UIGetScreenImage( void );

Hinweis: Sie können ein NSImage aus der CGImageRef mit der folgenden NSImage-Methode erstellen:

- ( id )initWithCGImage: ( CGImageRef )cgImage size:( NSSize )size;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X