NSView aufzeichnen?

  • NSView aufzeichnen?

    Hi, ich würde gerne alles was sich in einem NSView abspielt aufzeichnen und anschließend als Video speichern. leider hab ich keine Ahnung wie das geht und auch nichts hilfreiches dadrüber gefunden.... Weis jemand hier wie das geht? Oder geht das garnicht?
    Windows, nein danke...
  • RE: NSView aufzeichnen?

    Na ja, man könnte den View ableiten und dort Images abspeichern. Für die Umwandlung von Images in einen Film dürfte es Tutorials geben.

    Das hätte zudem den Vorteil, dass man wirklich nur dann seinen Snap macht, wenn es sich lohnt. Man kennt ja seinen eigenen -drawRect:.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: NSView aufzeichnen?

    Original von Tom9811
    Na ja, man könnte den View ableiten und dort Images abspeichern. Für die Umwandlung von Images in einen Film dürfte es Tutorials geben.

    Eine Serie von NSImages mit einem Timer ablaufen zu lassen, sicher kein Thema.
    Ein QT-Filmchen zu produzieren ist aber eine andere Sache. Die alten Quicktime Geschichten waren teilweise haarsträubend, bis Jaguar gab es immer noch diese komischen Pascal-Zeiger etc.

    Wie das neue QTKit sich verhält, weiß ich noch nicht, deswegen meine vorsichtige Formulierung. Vielleicht kann man ja eine sinnvolle Category entwickeln, oder ein Satz Methoden für einen 'delegate'.
    I would be embarrassed if they did not spy on me.
  • Ist nicht wirklich schwierig.
    Also, Du erzeugst ein MovieObjekt

    Quellcode

    1. myMovie = [[QTMovie alloc]init];

    dann machst Du ein NSImage aus dem View
    [NSBitmapImageRep initWithFocusedViewRect]
    .
    .
    .

    und zum Schluß 'hängst' Du das Image in Dein Movie

    Quellcode

    1. - (void)addImage:(NSImage *)image forDuration:(QTTime)duration withAttributes:(NSDictionary *)attributes

    Movie speichern nicht vergessen ;)

    fertig ist die Suppe
  • Ganz so einfach geht es nicht, denke ich.
    Aber mit Leopard ist neben den Methoden zu Kapiteln und zum 'threading' doch was Neues dazu gekommen:

    Quellcode

    1. - (id)initToWritableData:(NSMutableData *)data error:(NSError **)errorPtr

    und

    Quellcode

    1. - (id)initToWritableFile:(NSString *)filename error:(NSError **)errorPtr

    Damit könnte es gehen.
    I would be embarrassed if they did not spy on me.
  • Das beruhigt mich, dass das klappt.

    Die alte Doku, und bisher gibt es wenig Neues, sagt, dass man sich um den Speicher selbst kümmern muss (Apple TN 2005 und auch MacTech), und dann geht es los mit QTTrack, und weil man schon dabei ist, kann man auch gleich die wunderbaren QT-Funkionen benutzen.

    Dafür ist (war, darf man hoffentlich jetzt sagen) das Obj-C von denen an der Schmerzgrenze (aus diesem Beispiel: QTKitCreateMovie):

    Quellcode

    1. goto bail;
    2. bail:
    3. return;
    I would be embarrassed if they did not spy on me.