AIR: Video im Mac OS X Dock

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 128×128) 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:

[kml_flashembed movie=“/wp-content/uploads/2008/03/dock-icon-video.swf“ height=“350″ width=“550″ /]

[as]
import flash.display.BitmapData;
import flash.desktop.*
import flash.events.TimerEvent;
import flash.utils.Timer;

videoHolder.myFLVPlayback.load(„elephant-dream.flv“);

function getBitmapData(mc:MovieClip):BitmapData{

// neues BitmapData Object
var b:BitmapData = new BitmapData(videoHolder.myFLVPlayback.width, videoHolder.myFLVPlayback.height, false,0x00000000);

// Inhalt erfassen
b.draw(mc);

// Bitmapdata zurückliefern
return b;

}

// Dock ansprechen und in Variable ablegen
var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;

// neuer Timer mit 1/25 (= 25 fps)
var myTimer:Timer = new Timer(40);
myTimer.addEventListener(TimerEvent.TIMER, onTimer);
myTimer.start();

// Timerfunktion
function onTimer(evt:TimerEvent):void {

dockIcon.bitmaps = new Array( getBitmapData(videoHolder) );

}

[/as]

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

[ad]

2 Gedanken zu „AIR: Video im Mac OS X Dock“

  1. Ich denke, dass der Code einfach ignoriert wird.

    Grundsätzlich könntest du zuerst überprüfen, ob das Betriebssystem ein Dock hat (= Mac).


    if(NativeApplication.supportsDockIcon) {
    ...
    }
    else ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert