2012-11-04 6 views
2

Je veux pouvoir obtenir et régler le volume du système avec Core Audio. J'ai suivi le code de cet autre fil: objective c audio meterComment régler/obtenir le volume avec Core Audio?

Cependant, mon appel à AudioHardwareServiceHasProperty pour trouver la propriété kAudioHardwareServiceDeviceProperty_VirtualMasterVolume retourne false. Pourquoi cela se passe-t-il, et comment puis-je le contourner? Quelle approche dois-je prendre pour obtenir et régler le volume du système avec Core Audio?

Répondre

2

Avez-vous essayé 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 
Questions connexes