Como faço para acessar (ouvir) as teclas multimídia (play / pause) em Mac OS X?
Pergunta
Eu quero escrever um Songbird liga extensão as teclas multimédia disponíveis em todas as plataformas Apple Mac OS X. Infelizmente, esta não é uma busca fácil google e eu não posso encontrar qualquer docs.
Pode recursos me apontar ninguém sobre como acessar essas chaves ou me dizer como fazê-lo?
Eu tenho uma vasta experiência de programação, mas esta será a primeira vez que a codificação em ambos MacOSX e XUL (Firefox, etc), então todas as pontas em ambos são bem-vindos.
Por favor, note que estes não são os principais eventos regulares. Presumo que deve ser um tipo diferente de eventos do sistema que vou precisar ligar ou inscrever-se.
Solução
Este post tem uma solução:
http: // www .rogueamoeba.com / UTM / posts / artigo / mediaKeys-2007-09-29-17-00.html
Você precisa basicamente de NSApplication
subclasse e sendEvent
override,
procurando digitalizar códigos especiais. Eu não sei o Songbird é, mas se é
não um aplicativo real, então eu duvido que você vai ser capaz de fazer isso.
Ou talvez você pode, uma categoria simples pode ser suficiente:
@implementation NSApplication(WantMediaKeysCategoryKBye)
- (void)sendEvent: (NSEvent*)event
{
// intercept media keys here
}
@end
Outras dicas
Tem certeza que seu multimédia estão trabalhando na sua instalação? Cada chave única gera um código de verificação que se traduz em um código de chave pelo kernel. Se xev não mostra nenhum keycodes Eu acho que esses códigos de verificação não são mapeados e assim o kernel não tem conhecimento deles.
http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys tem uma boa explicação de encontrar códigos-chave e oferece ajuda sobre como você pode encontrar códigos de verificação não processados ??e traduzi-los em códigos-chave.
xev
pode ajudá-lo se você quiser descobrir quais códigos estão sendo enviado por teclas multimédia.