PlaySystemSound con el interruptor de silencio activado

Lo sé, tengo que configurar elAudioSession a la categoría 'reproducción', que permite el audio incluso cuando el interruptor de silencio está activado. Esto es lo que hago, pero el sonido aún se silencia cuando el interruptor está activado.

 UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
 AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(sessionCategory), &sessionCategory);

 SystemSoundID soundID;
 NSString *path = [[NSBundle mainBundle] pathForResource:soundString ofType:@"wav"];    

 AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
 AudioServicesPlaySystemSound (soundID);


EDITAR: por cierto, la aplicación es un panel de sonido. Reproducir sonido es el único propósito de la aplicación. Esto es lo que Apple Doc dice sobre esto:

Use esta categoría para una aplicación cuya reproducción de audio es de importancia primordial. Su audio se reproduce incluso con la pantalla bloqueada y con el interruptor de timbre / silencio en silencio.


EDITAR 2: con el interruptor de silencio activado, el sonido ni siquiera se reproducirá a través de los auriculares.Sé que el usuario es el rey.. Sé que el interruptor de silencio tiene su propósito. Esa no es la pregunta. Estoy tratando de obtener una respuesta sobre el hecho de que configurar elAudioSession categoría akAudioSessionCategory_MediaPlayback no tiene el resultado esperado.


EDITAR 3: siguiendo la sugerencia de Jonathan Watmough, configuré elAudioServices kAudioServicesPropertyIsUISound propiedad, pero aún no hay suerte. ¿Me estoy perdiendo de algo?

// set the session property
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(sessionCategory), &sessionCategory);

// creates soundID
SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle] pathForResource:soundString ofType:@"wav"];    
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);

// Jonathan Watmough suggestion
UInt32 flag = 0;
AudioServicesSetProperty(kAudioServicesPropertyIsUISound, sizeof(UInt32), &soundID, sizeof(UInt32), &flag);

AudioServicesPlaySystemSound (soundID);

Respuestas a la pregunta(5)

Su respuesta a la pregunta