观察系统体积变化OSX-Swift

时间:2020-01-17 20:38:54

标签: swift macos nsnotificationcenter avaudioengine

我正在尝试在系统音量更改时执行一种方法。

我尝试使用 DistributedNotificationCenter.default().addObserver(self,selector: #selector(volumeChanged(_:)),name: NSNotification.Name(rawValue: "com.apple.sound.settingsChangedNotification"),object: nil),但是没有用。

嗯,它确实有效。但是只有在“系统偏好设置”应用程序打开的情况下。

什么是完成此任务的正确方法?

Ps:请注意,它是在MacOS而非iOS上

1 个答案:

答案 0 :(得分:0)

尝试了无数种方法后,我发现了一个不错的解决方法:我尝试获取物理按键事件,而不是搜索可能不存在的通知。 由于媒体密钥未发送正常的CGEvent,因此提出了以下解决方案:Capture OSX media control buttons in Swift

请注意,TouchBar模拟了这样的按键事件,因此,您将使用此方法编写的任何应用程序也将适用于具有TouchBar的那些MacBook机型。

这可能不是理想的解决方案,但它可以工作。如果有人知道更好的方法,请告诉我。