2012-09-05 33 views
6

He estado buscando y desconectando la documentación por un par de días pero parece que no encuentro la respuesta a esto.coreaudio: cómo obtener/configurar el volumen de alerta del sistema en oposición al volumen del dispositivo

Tengo una aplicación OS X que, entre otras cosas, consulta los dispositivos de hardware disponibles y sus volúmenes actuales utilizando kAudioDevicePropertyVolumeScalar y sus amigos.

Lo que quiero poder hacer es obtener y configurar el -alert-volume (?) Para el dispositivo de salida del sistema representado por kAudioHardwarePropertyDefaultSystemOutputDevice en lugar de ese volumen de dispositivos.

Para aclarar mi comprensión limitada, esta es la configuración de volumen que los usuarios pueden ajustar en Preferencias del sistema en "Reproducir efectos de sonido a través de".

Al buscar en las listas de coreaudio-api, he podido deducir que esta configuración de volumen no es una propiedad del dispositivo sino un tipo de valor derivado, pero no sé dónde hacerlo desde aquí.

Cualquier ayuda sería recibida con gratitud.

Respuesta

1

No estoy seguro de si realmente tiene un requisito para la lectura a través de CoreAudio, pero el siguiente funciona bien:

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

Aunque esto podría cambiar con las actualizaciones del sistema operativo como los ajustes se almacenan en ~/Library/Preferences/com.apple.systemsound.plist.

Cuestiones relacionadas