2012-09-05 2 views
6

Ich habe die Dokumentation, Mailinglisten für ein paar Tage ein- und ausgeschaltet, aber scheint die Antwort darauf nicht zu finden.coreaudio: wie man das Systemwarnungsvolume im Gegensatz zu Gerätvolumen erhält/setzt

Ich habe eine OS X App, die unter anderem die verfügbaren Hardwaregeräte und ihre aktuellen Volumes mit kAudioDevicePropertyVolumeScalar und Freunden abfragt.

Ich möchte das -alert- Volume (?) Für das Systemausgabegerät, das durch kAudioHardwarePropertyDefaultSystemOutputDevice repräsentiert wird, erhalten und einstellen, anstatt dieses Gerätevolume.

Um von meinem begrenzten Verständnis zu verdeutlichen, ist dies die Lautstärkeeinstellung, die Benutzer in den Systemeinstellungen unter 'Soundeffekte abspielen durch' einstellen können.

Bei der Suche in den coreaudio-api-Listen habe ich herausgefunden, dass diese Lautstärkeeinstellung keine Geräteeigenschaft ist, sondern irgendeine Art abgeleiteter Wert, aber ich bin davon nicht überzeugt, wo ich hingehen soll.

Jede Hilfe wäre dankbar erhalten.

Antwort

1

Ich bin nicht sicher, ob Sie wirklich eine Anforderung für sie durch CoreAudio- lesen, aber die folgende funktioniert gut:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults addSuiteNamed:@"com.apple.systemsound"];   
NSLog(@"%f", [defaults floatForKey:@"com.apple.sound.beep.volume"]); 

Obwohl diese mit Betriebssystem-Updates ändern könnte, da die Einstellungen in gespeichert werden ~/Library/Preferences/com.apple.systemsound.plist.

Verwandte Themen