Actualmente estoy intentando configurar el audio de fondo para una aplicación que estoy desarrollando para iOS 4. La aplicación no tiene un reproductor de música dedicado viewController
, sin embargo, a diferencia de otros archivos de audio de fondo aplicaciones como Pandora, lo que hace que la tarea sea un poco más confusa.iOS 4: Controles remotos para audio de fondo
He establecido correctamente la configuración Info.plist
y tengo un objeto AVAudioPlayer
en mi delegado de la aplicación al que se puede acceder desde cualquier lugar. Cuando el usuario reproduce una canción, reemplazo el AVAudioPlayer
con uno nuevo inicializado con la canción y lo reproduzco. Todo esto funciona muy bien, excepto que ahora no tengo idea de cómo apoyar los eventos de control remoto.
Sobre la base de la documentación de Apple, tengo esto:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
switch(event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
if([iPhoneAppDelegate backgroundAudioPlayer].playing)
[iPhoneAppDelegate pauseBackgroundAudioPlayer];
else
[iPhoneAppDelegate playBackgroundAudioPlayer];
break;
}
}
La cosa es, ¿dónde pongo esto? La documentación de Apple parece sugerir que esto debería ir en algún controlador de visualización en alguna parte, pero mi aplicación tiene muchos controladores de vista y controladores de navegación. Siempre que trato de poner esto, por alguna razón tocar el botón Activar/Pausa en los controles remotos de la bandeja multitarea hace que la canción simplemente haga una pausa por un momento y luego reanude, o de alguna manera haga que la canción se reproduzca dos veces.
¿Cómo cambió el botón reproducir/parar en la barra multitarea? –