2010-07-06 13 views
9

He agregado la propiedad UIBackgroundModes en Info.plist para tener una entrada de matriz de "audio" y he agregado la llamada para configurar la sesión de audio: [session setCategory: AVAudioSessionCategoryPlayback error: &error];.¿Es posible probar iOS4 multitarea/música de fondo que se reproduce en el simulador?

Sin embargo, el único dispositivo de prueba que tengo es el iPod Touch 2G que no es compatible con la multitarea. He probado el simulador pero la música deja de reproducirse cuando me cambio a Safari. Pero cuando vuelvo a mi aplicación, la canción continúa reproduciéndose en un lugar más alejado que cuando salí de la aplicación.

Parece haber seguido jugando en segundo plano pero no escuché el audio de mi aplicación mientras estaba usando otra aplicación (Safari).

+0

También quiero saber. si podemos probar la multitarea en el simulador o no con la insignia de apns actualizando – harshalb

Respuesta

18

yo también tenía el mismo problema. En el simulador, el audio hace una pausa y cuando lo vuelve a iniciar, reanuda la reproducción. Pero probar en el dispositivo funcionó perfectamente y el audio continuó sonando en segundo plano. El código de muestra que he utilizado es

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[audioPlayer play]; 
+0

Vi el mismo comportamiento. El código que funciona en iPhone 4 avanzará silenciosamente en el simulador. – drawnonward

+0

Quiero mencionar que esto también funciona con la clase AVPlayer que admite la transmisión. Establecer la categoría permitirá que una aplicación de transmisión de audio continúe reproduciéndose cuando el dispositivo se bloquea o la aplicación se suspende. Muy útil. –

+0

Tuve que editar MyApp-info.plist para que funcione. Consulte los detalles aquí http://www.crocodella.com.br/2011/01/using-avplayer-to-play-background-music-from-library/ –

2

¿U de valor añadido hacia atrás tecla de modo terreno en info.plist ... Si no se trate de añadir este archivo ... info.plist Goto y haga clic en añadir que añadir "obligatorios Back modos de tierra", el clic de un pequeño triángulo y u obtendrán item0 en que se suman "de la aplicación para reproducir audio que" ... Esto funciona bien ...

~ Raviraja

+0

Sí, lo mencioné en mi pregunta. ¿Tendría proyectos de ejemplo que pueda ejecutar en mi simulador que contenga la configuración correcta? Gracias. –

1

Esto funcionó incluso en el dispositivo para mí.

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[audioPlayer play]; 

Este y el establecimiento de la clave info.plist para habilitar el sonido de fondo es lo que se necesita para que el audio de fondo jugando en una aplicación para el iPhone. Sin embargo, si desea jugar en una secuencia de archivos de audio a continuación, uno puede necesitar para realizar cada operación de reproducción como una tarea en segundo plano como esto:

UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil]; 

realizar las operaciones necesarias:

[[UIApplication sharedApplication] endBackgroundTask:bgTask]; 
16

de audio de fondo es no compatible con el simulador de iPhone. Fuente: WWDC 2010, sesión 109 - Adoptar la parte de multitareas 2.

Cuestiones relacionadas