2

我希望能够使用 Core Audio 获取和设置系统音量。我遵循了另一个线程上的代码: objective c audio Meter

AudioHardwareServiceHasProperty但是,我查找该属性的调用kAudioHardwareServiceDeviceProperty_VirtualMasterVolume返回 false。为什么会发生这种情况,我该如何解决?我应该采取什么方法来获取和设置 Core Audio 的系统音量级别?

4

1 回答 1

3

您是否尝试过 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
于 2012-12-27T06:26:09.417 回答