2008-09-22 8 views
9

Quiero escribir una extensión Songbird que vincula las teclas multimedia disponibles en todas las plataformas Apple Mac OS X. Lamentablemente, esta no es una búsqueda fácil en Google y no puedo encontrar ningún documento.¿Cómo accedo (escucho) las teclas multimedia (reproducción/pausa) en Mac OS X?

¿Alguien puede indicarme los recursos para acceder a estas claves o decirme cómo hacerlo?

Tengo una amplia experiencia en programación, pero esta será la primera vez que programo tanto en MacOSX como en XUL (Firefox, etc.), así que cualquier sugerencia sobre cualquiera de ellos es bienvenida.

Tenga en cuenta que estos no son eventos de tecla normales. Supongo que debe ser un tipo de evento de sistema diferente al que tendré que conectar o suscribirme.

Respuesta

2

Este blog tiene una solución:

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

Usted necesita básicamente a la subclase NSApplication y anular sendEvent,
en busca de códigos de exploración especiales. No sé qué es el pájaro cantor, pero si es
, no es una aplicación real, entonces dudo que puedas hacer esto.

O tal vez se puede, una categoría sencilla puede ser suficiente:

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

xev podría ayudarlo si quiere saber qué códigos están siendo enviados por las teclas multimedia.

+0

Gracias por la sugerencia, pero xev no recibe los eventos clave multimedia. Estos no son eventos clave normales, Ukulele, por ejemplo, no puede recibirlos ni reasignarlos. –

1

¿Estás seguro de que las teclas multimedia están funcionando en tu instalación? Cada tecla genera un código de escaneo que el kernel traduce a un código de clave. Si xev no muestra ningún código clave, supongo que esos códigos de escaneo no están mapeados y, por lo tanto, el kernel no los conoce.

http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys tiene una buena explicación de la búsqueda de códigos clave y ofrece ayuda sobre cómo puede encontrar códigos de exploración prima y traducirlos en los códigos de teclas.