AVAudioPlayer no comienza a jugar en segundo plano
estoy usandoAVAudioPlayer
yNSFileHandle
para hacer streaming de audio. La idea básica es que guardo la transmisión de datos de audio en el dispositivo con el sistema de archivos y luego usoAVAudioPlayer
para reproducir el archivo que acaba de guardar.AVAudioPlayer
Todavía se puede reproducir ese archivo, incluso la transmisión está en curso.
tengo unUIButton
para iniciar la transmisión / descarga. Cuando los datos descargados se acumulan en una cantidad específica de bytes,AVAudioPlayer
jugará (el método de "juego" deAVAudioPlayer
se dispara) automáticamente. Mi pregunta es: toque el botón para iniciar la transmisión / descarga, luego presione el botón de inicio del iPhone muy pronto para que mi aplicación pase al fondo. La descarga sigue funcionando en segundo plano, pero el método "play" deAVAudioPlayer
devuelve "NO", lo que significa que el método "reproducir" no reproduce el audio.
yo añadíAVAudioSession
Código relacionado con el método de inicio de mi reproductor de audio:
- (id) initWithURL:(NSString *) downloadedMusicURL
{
if ((self = [super init]))
{
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
CFURLRef url = CFURLCreateWithFileSystemPath (NULL, (CFStringRef)downloadedMusicURL, kCFURLPOSIXPathStyle, FALSE);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:CFBridgingRelease(url) error:nil];
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
}
return self;
}
También en la lista de información, agregué un elemento "La aplicación reproduce audio" para la tecla "Modos de fondo requeridos". Sin embargo, el "juego" todavía no se llama correctamente en el fondo. ¿Qué más me perdí? Muchas gracias por adelantado.