在 10.6 (Snow Leopard) 之后以编程方式设置 Mac OS X 音量

Posted

技术标签:

【中文标题】在 10.6 (Snow Leopard) 之后以编程方式设置 Mac OS X 音量【英文标题】:Setting Mac OS X volume programmatically after 10.6 (Snow Leopard) 【发布时间】:2014-07-31 23:54:38 【问题描述】:

有没有办法使用 Objective-C 设置 Mac 的系统音量?我尝试使用:

AudioDeviceSetProperty([[self class]defaultOutputDeviceID],
                       NULL, //time stamp not needed
                       0, //channel 0 is master channel
                       false,  //for an output device
                       kAudioDevicePropertyVolumeScalar,
                       sizeof(Float32),
                       &volume);

但在OS X 10.6(雪豹)之后已弃用;有一个更好的方法吗?还是我必须满足于申请量?

【问题讨论】:

【参考方案1】:

查看 AudioToolbox 中的音频硬件服务:

AudioToolbox Functions Audio Hardware Services Properties

下面是一些示例代码,假设上下文与您的其他代码相同:

AudioObjectPropertyAddress propertyAddress =  
    kAudioHardwareServiceDeviceProperty_VirtualMasterVolume, 
    kAudioDevicePropertyScopeOutput,
    kAudioObjectPropertyElementMaster 
;

AudioHardwareServiceSetPropertyData([self.class defaultOutputDeviceID], 
                                    &propertyAddress, 
                                    0, 
                                    NULL, 
                                    sizeof(Float32),
                                    &volume);

【讨论】:

链接重定向到developer.apple.com/documentation/audiotoolbox。这是故意的吗? @PeterMortensen 我已将链接修改为我能找到的最接近的相关内容

以上是关于在 10.6 (Snow Leopard) 之后以编程方式设置 Mac OS X 音量的主要内容,如果未能解决你的问题,请参考以下文章

Snow Leopard 中的 Mac 资源编辑器?

mod_wsgi on Snow Leopard python 版本不匹配

Mac OS X Snow Leopard 的默认 /etc/sysctl.conf 设置?

用于Snow Leopard上的mercurial的GUI

NSToolbar 在 Leopard 和 Snow Leopard 中看起来不同

如何将 Leopard 和 Snow Leopard 支持添加到 Lion Cocoa 应用程序?