En realidad, puede hacer esto. Se controla a través de la Sesión de audio y no tiene nada que ver con AVAudioPlayer
. ¿Por qué no quieres usar AudioSession? Juegan bien juntos ...
En su aplicación, debe inicializar la Sesión de audio, y luego también puede indicarle qué tipo de audio tiene la intención de reproducir. Si usted es un reproductor de música, entonces tiene sentido que el usuario quiera escuchar el audio incluso con el interruptor de anillo/silencio habilitado.
AudioSessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionSetActive(true);
// Allow playback even if Ring/Silent switch is on mute
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),&sessionCategory);
Tengo una aplicación que hago esto mismo, y utilizar AVAudioPlayer para reproducir audio, y con el/interruptor de silencio anillo activado, puedo escuchar el audio.
ACTUALIZACIÓN (11/6/2013)
En la aplicación que se ha mencionado anteriormente, donde solía el código anterior con éxito, tengo (durante algún tiempo) estado utilizando el código siguiente en su lugar para lograr el mismo resultado:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
BOOL result = NO;
if ([audioSession respondsToSelector:@selector(setActive:withOptions:error:)]) {
result = [audioSession setActive:YES withOptions:0 error:&error]; // iOS6+
} else {
[audioSession setActive:YES withFlags:0 error:&error]; // iOS5 and below
}
if (!result && error) {
// deal with the error
}
error = nil;
result = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
if (!result && error) {
// deal with the error
}
Pensé en publicar esto como una alternativa, a la luz del comentario más reciente a esta respuesta. :-)
Si el dispositivo está en modo silencioso, no reproducir sonido. ¡El usuario ha pedido silencio explícitamente! –
¿Por qué sin AVAudioSession? –
@JonathanGrynspan - eso tiene sentido cuando el usuario _solicita_ que pidieron silencio, pero si crea aplicaciones de naturaleza AV se verá inundado con este tipo de revisión: "AUDIO NO FUNCIONA ★ ☆☆☆☆" –