如何在Mac OS X中访问(收听)多媒体键(播放/暂停)?

时间:2008-09-22 12:27:38

标签: macos xul songbird

我想写一个Songbird扩展名绑定所有Apple Mac OS X平台上可用的多媒体键。不幸的是,这不是一个简单的谷歌搜索,我找不到任何文档。

有人能指出我访问这些密钥的资源或告诉我该怎么做吗?

我有丰富的编程经验,但这将是我第一次使用MacOSX和XUL(Firefox等)进行编码,因此欢迎任何提示。

请注意,这些不是常规的关键事件。我认为它必须是我需要挂钩或订阅的不同类型的系统事件。

3 个答案:

答案 0 :(得分:2)

此博文有一个解决方案:

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

您基本上需要子类NSApplication并覆盖sendEvent
寻找特殊的扫描码。我不知道鸣禽是什么,但如果是的话 不是真正的应用,那么我怀疑你能做到这一点。

也许你可以,一个简单的类别就足够了:

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

答案 1 :(得分:1)

您确定您的多媒体密钥在您的安装中正常工作吗?每个密钥都生成一个扫描代码,由内核翻译成密钥代码。如果xev没有显示任何密钥代码,我猜这些扫描代码没有映射,所以内核不知道它们。

http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys对查找关键代码有很好的解释,并提供有关如何查找原始扫描代码并将其转换为关键代码的帮助。

答案 2 :(得分:0)

如果您想了解多媒体密钥发送的代码,

xev可能对您有所帮助。