Es posible gracias a las pruebas para una ruta de audio NULL usando AudioToolbox:
UInt32 routeSize = sizeof (CFStringRef);
CFStringRef route;
AudioSessionGetProperty (
kAudioSessionProperty_AudioRoute,
&routeSize,
&route
);
if (route == NULL) {
NSLog(@"Silent switch is on");
}
Si la ruta es NULL entonces no hay salidas de audio disponibles. Si se trata de "Auriculares" o "Auriculares", el interruptor de timbre silencioso aún podría estar encendido. Sin embargo, nunca estará activado cuando esté configurado en "Altavoz".
usted está probablemente mejor prueba de esto en su oyente propiedad cambio de ruta de audio, que se establece a continuación:
AudioSessionAddPropertyListener (
kAudioSessionProperty_AudioRouteChange,
audioRouteChangeListenerCallback,
self
);
Nota: Si estás haciendo algo cobarde como rutas de audio de primer orden, entonces esta respuesta puede no aplicar.
Configurar y desmontar una sesión de audio en su totalidad probablemente esté fuera del alcance de esta respuesta.
Muchas gracias coob. Lo verificaré y le haré saber. – Jyotsna
¿Funcionó bien para usted? –
@Jyotsna es este código funcionó para usted? – sathis