我希望能够使用 Core Audio 获取和设置系统音量。我遵循了另一个线程上的代码: objective c audio Meter
AudioHardwareServiceHasProperty
但是,我查找该属性的调用kAudioHardwareServiceDeviceProperty_VirtualMasterVolume
返回 false。为什么会发生这种情况,我该如何解决?我应该采取什么方法来获取和设置 Core Audio 的系统音量级别?
我希望能够使用 Core Audio 获取和设置系统音量。我遵循了另一个线程上的代码: objective c audio Meter
AudioHardwareServiceHasProperty
但是,我查找该属性的调用kAudioHardwareServiceDeviceProperty_VirtualMasterVolume
返回 false。为什么会发生这种情况,我该如何解决?我应该采取什么方法来获取和设置 Core Audio 的系统音量级别?
您是否尝试过 kAudioDevicePropertyVolumeScalar:
UInt32 channel = 1; // Channel 0 is master, if available
AudioObjectPropertyAddress prop = {
kAudioDevicePropertyVolumeScalar,
kAudioDevicePropertyScopeOutput,
channel
};
if(!AudioObjectHasProperty(deviceID, &prop))
// error
Float32 volume;
UInt32 dataSize = sizeof(volume);
OSStatus result = AudioObjectGetPropertyData(deviceID, &prop, 0, NULL, &dataSize, &volume);
if(kAudioHardwareNoError != result)
// error