2008-09-22 3 views
9

Je veux écrire une extension Songbird lie les touches multimédia disponibles sur toutes les plates-formes Apple Mac OS X. Malheureusement, ce n'est pas une recherche google facile et je ne trouve pas de documents.Comment accéder (écouter) aux touches multimédia (lecture/pause) sous Mac OS X?

Quelqu'un peut-il me signaler des ressources sur l'accès à ces clés ou me dire comment le faire?

Je possède une vaste expérience de la programmation, mais ce sera mon premier codage à la fois dans MacOSX et XUL (Firefox, etc), donc des conseils sur les deux sont les bienvenus.

Veuillez noter que ce ne sont pas des événements clés réguliers. Je suppose qu'il doit s'agir d'un type d'événement système différent auquel je devrai me connecter ou m'abonner.

Répondre

2

Ce billet de blog a une solution:

http://www.rogueamoeba.com/utm/posts/Article/mediaKeys-2007-09-29-17-00.html

Vous devez essentiellement sous-classe NSApplication et passer outre sendEvent,
à la recherche des codes de balayage spéciaux. Je ne sais pas ce que songbird est, mais si c'est
pas une vraie application alors je doute que vous serez en mesure de le faire.

Ou vous pouvez peut-être, une catégorie simple peut suffire:

@implementation NSApplication(WantMediaKeysCategoryKBye) 
- (void)sendEvent: (NSEvent*)event 
{ 
    // intercept media keys here 
} 
@end 
0

xev peut vous aider si vous voulez savoir quels codes sont envoyés par les touches multimédia. Etes-vous sûr que vos touches multimédia fonctionnent dans votre installation?

+0

Merci pour la suggestion, mais xev ne reçoit pas les événements clés multimédia. Ce ne sont pas des événements clés normaux, Ukulele par exemple n'est pas en mesure de les recevoir ou de les réaffecter. –

1

Chaque clé génère un code d'analyse qui est traduit en code clé par le noyau. Si xev ne vous montre aucun code clé, je suppose que ces codes ne sont pas mappés et donc le noyau n'en a aucune connaissance.

http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys a une bonne explication de trouver des codes clés et offre une aide sur la façon dont vous pouvez trouver des codes de balayage bruts et les traduire en codes clés.

Questions connexes