Como faço para acessar (ouvir) as teclas multimídia (play / pause) em Mac OS X?

StackOverflow https://stackoverflow.com/questions/114541

  •  02-07-2019
  •  | 
  •  

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.

Foi útil?

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

chaves

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top