MediaKeyTap 2.3.0

MediaKeyTap 2.3.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2021 年 6 月
SPM支持 SPM

Nicholas Hurden 维护。



  • Nicholas Hurden

MediaKeyTap

MediaKeyTap 提供了一个用于访问您 Swift 应用程序中 Mac 的媒体键(播放/暂停、下一个和上一个)的 API。MediaKeyTap 只在它是最近激活的媒体应用时捕获按键事件,匹配现有应用程序的行为,例如使用 SPMediaKeyTap 的应用程序。

MediaKeyTap 通过将 SPMediaKeyTap 的静态白名单与在运行时使用 NSDistributedNotificationCenter 构建的白名单结合起来来构建其白名单。如果您使用此库创建一个新的应用程序,那么您不需要将您的包标识符添加到白名单中。

使用方法

创建一个 MediaKeyTap

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    

    var mediaKeyTap: MediaKeyTap?

    func applicationDidFinishLaunching(aNotification: Notification) {
        mediaKeyTap = MediaKeyTap(delegate: self)
        mediaKeyTap?.start()
    }

    
}

并实现 MediaKeyTapDelegate 的 1 个方法

func handle(mediaKey: MediaKey, event: KeyEvent) {
    switch mediaKey {
    case .playPause:
        print("Play/pause pressed")
    case .previous, .rewind:
        print("Previous pressed")
    case .next, .fastForward:
        print("Next pressed")
    }
}

您还可以访问 KeyEvent 来获取事件的下层的 keycodekeyFlagskeyRepeat 值。

MediaKeyTap 初始化器允许指定按键行为

    MediaKeyTap(delegate: self, on: .keyDown) // Default
    MediaKeyTap(delegate: self, on: .keyUp)
    MediaKeyTap(delegate: self, on: .keyDownAndUp)

要求

  • 为了全局捕获按键事件,您无法将应用程序沙盒化,否则您将不会接收任何事件。

安装

CocoaPods

pod 'MediaKeyTap'添加到您的Podfile中,并运行pod install

然后导入 MediaKeyTap

Carthage

github "nhurden/MediaKeyTap"添加到您的Cartfile中,并运行carthage update