问题
Is there a way to set the Mac's System Volume using Objective-C? I tried using:
AudioDeviceSetProperty([[self class]defaultOutputDeviceID],
NULL, //time stamp not needed
0, //channel 0 is master channel
false, //for an output device
kAudioDevicePropertyVolumeScalar,
sizeof(Float32),
&volume);
But it is deprecated after OS X 10.6 (Snow Leopard); is there a better way to do this? Or will I have to settle for application volume?
回答1:
Check out https://developer.apple.com/library/mac/documentation/AudioToolbox/Reference/AudioHardwareServicesReference/Reference/reference.html
Here is some sample code assuming the same context as your other code:
AudioObjectPropertyAddress propertyAddress = {
kAudioHardwareServiceDeviceProperty_VirtualMasterVolume,
kAudioDevicePropertyScopeOutput,
kAudioObjectPropertyElementMaster
};
AudioHardwareServiceSetPropertyData([self.class defaultOutputDeviceID],
&propertyAddress,
0,
NULL,
sizeof(Float32),
&volume);
来源:https://stackoverflow.com/questions/25070819/setting-mac-os-x-volume-programatically-after-10-6-snow-leopard