使用 Swift 在 OS X 10.11 中设置 OS X 音量,而不使用已弃用的 AudioHardwareServiceSetPropertyData API
Set OS X volume in OS X 10.11 using Swift without using the deprecated AudioHardwareServiceSetPropertyData API
我发现 this code 使用 Swift 设置系统音量。在操场上使用代码时,我收到了警告。
AudioHardwareServiceSetPropertyData was deprecated in OS X 10.11
如何更新 OS X 10.11 的代码?
谢谢。
:)
正如 this answer to a similar Objective-C question, I'd suggest using ISSoundAdditions 中所建议的那样,您可以这样从 Swift 调用它:
NSSound.setSystemVolume(0.5)
-setSystemVolume
begins around line 113 在 ISSoundAdditions.m 中的实现如果您对他们如何完成系统音量设置感到好奇。
为了澄清对我的回答的事实质疑评论(显然已删除),在使用 El Capitan SDK 编译时,ISSoundAdditions 中没有使用已弃用的 APIs – AudioHardwareServiceSetPropertyData
不是用过的。 AudioObjectSetPropertyData
确实是 API 如果使用已弃用的 AudioHardwareServiceSetPropertyData
应该切换到首先执行)。
我还不能发表评论,因此我 post 作为一个单独的答案。我已经将很棒的 ISSoundAdditions 更新为 true Swift 5 并给它一个漂亮的 public 界面,通过它您可以通过获取和设置 NSSound 的 class 属性 来管理系统音量– 例子:
NSSound.systemVolume += 0.2
NSSound.systemVolumeIsMuted = true
作为一个小好东西,您可以将系统音量静音(并且在后台无阻塞):
NSSound.systemVolumeFadeToMute(seconds: 5.0, blocking: false)
我发现 this code 使用 Swift 设置系统音量。在操场上使用代码时,我收到了警告。
AudioHardwareServiceSetPropertyData was deprecated in OS X 10.11
如何更新 OS X 10.11 的代码?
谢谢。 :)
正如 this answer to a similar Objective-C question, I'd suggest using ISSoundAdditions 中所建议的那样,您可以这样从 Swift 调用它:
NSSound.setSystemVolume(0.5)
-setSystemVolume
begins around line 113 在 ISSoundAdditions.m 中的实现如果您对他们如何完成系统音量设置感到好奇。
为了澄清对我的回答的事实质疑评论(显然已删除),在使用 El Capitan SDK 编译时,ISSoundAdditions 中没有使用已弃用的 APIs – AudioHardwareServiceSetPropertyData
不是用过的。 AudioObjectSetPropertyData
确实是 API 如果使用已弃用的 AudioHardwareServiceSetPropertyData
应该切换到首先执行)。
我还不能发表评论,因此我 post 作为一个单独的答案。我已经将很棒的 ISSoundAdditions 更新为 true Swift 5 并给它一个漂亮的 public 界面,通过它您可以通过获取和设置 NSSound 的 class 属性 来管理系统音量– 例子:
NSSound.systemVolume += 0.2
NSSound.systemVolumeIsMuted = true
作为一个小好东西,您可以将系统音量静音(并且在后台无阻塞):
NSSound.systemVolumeFadeToMute(seconds: 5.0, blocking: false)