Adobe AIR Video DockMit Adobe AIR lässt sich auf dem Mac-Betriebssystem das Symbol (Icon) des eigenen Programms im Dock abändern. So könnte man z.B. verschiedene Zustände des Programms darstellen (z.B. ein grünes Häkchen einblenden, wenn ein längerer Vorgang beendet ist).

Als Quelle für das Bild im Dock dient ein beliebiges Bitmapdata-Object. Dieses weist man der Eigenschaft bitmaps des DockIcon-Objekt zu. Man kann auch ein BitmapData-Array mit verschiedenen Größen (bis 128x128) zuweisen. Das Dock entscheidet sich dann für dasjenige Bitmap-Objekt, das am nächsten an der aktuellen Anzeigegröße liegt.

Dieses Beispiel zeigt, wie man sogar ein Video – wie von QuickTime bekannt – im Dock mitlaufen lassen kann. Dazu aktualisiert man einfach ständig das Icon und überschreibt es mit einem aktuellen Screenshot des Videobilds.

Als Zeitraum habe ich 40ms (1/25 s) gewählt, weil die Video-Framerate üblicherweise bei 25 Bilder pro Sekunde liegt.

Hier ein Screencast, der den ActionScript-Code in Aktion zeigt:

Actionscript:
  1. import flash.display.BitmapData;
  2. import flash.desktop.*
  3. import flash.events.TimerEvent;
  4. import flash.utils.Timer;
  5.  
  6.  
  7. videoHolder.myFLVPlayback.load("elephant-dream.flv");
  8.  
  9. function getBitmapData(mc:MovieClip):BitmapData{
  10.    
  11.     // neues BitmapData Object
  12.     var b:BitmapData = new BitmapData(videoHolder.myFLVPlayback.width, videoHolder.myFLVPlayback.height, false,0x00000000);
  13.    
  14.     // Inhalt erfassen
  15.     b.draw(mc);
  16.    
  17.     // Bitmapdata zurückliefern
  18.     return b;
  19.    
  20. }
  21.  
  22.  
  23. // Dock ansprechen und in Variable ablegen
  24. var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
  25.  
  26.  
  27.  
  28. // neuer Timer mit 1/25 (= 25 fps)
  29. var myTimer:Timer = new Timer(40);
  30. myTimer.addEventListener(TimerEvent.TIMER, onTimer);
  31. myTimer.start();
  32.  
  33. // Timerfunktion
  34. function onTimer(evt:TimerEvent):void {
  35.    
  36.     dockIcon.bitmaps = new Array( getBitmapData(videoHolder) );
  37.  
  38. }

Download: Quelldatei (.fla)
Link: Using the system tray and dock icons