2009-05-29 16 views
7

Me di cuenta de que algunas aplicaciones silencian programáticamente iTunes (si se está ejecutando) en el momento del lanzamiento. ¿Cómo se logra esto? Tengo un juego con música de fondo y me gustaría detener iTunes o recibir al menos un mensaje de que iTunes se está reproduciendo para poder detener la música de fondo del juego.iPhone: ¿Cómo detectar si iTunes está jugando?

thx, marc.

Respuesta

8

No es necesario. Con Audio Session puedes decidir cómo se comportará el audio.

Desde el Audio Session Programming Guide:

Con la interfaz de sesión de audio, que especificar aspectos del comportamiento de audio de su aplicación y configurarlo para que vivir en armonía dentro del entorno de audio iPhone . Se empieza por preguntar usted mismo preguntas como las siguientes:

  • ¿Quieres que tu audio a ser silenciado por el interruptor de tono/silencio? La respuesta es probablemente "sí" si el audio no es esencial para utilizar su aplicación con éxito. (Los usuarios aprecian la posibilidad de ejecutar su juego en una reunión sin que nadie se enterara.)

  • ¿Quieres iPod de audio para continuar jugando cuando el audio se inicia? Esto podría ser apropiado para un piano virtual , permitiendo a los usuarios reproducir junto con canciones en sus bibliotecas. Desea que el audio del iPod se detenga, , sin embargo, para una aplicación de transmisión de radio .

es probable que desee esto:

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

Para más tipos de comportamiento, active la Audio Session Categories, o leer todo el Audio Session Programming Guide.

0

Tuve el problema opuesto. Mi aplicación reproduce un video corto sin sonido después del lanzamiento. Esto causó que la música de iTunes que se reproduce en segundo plano se silenciara.

Con el fin de mantener la reproducción de música, añado esto en el applicationDidFinishLaunching:

NSError* error; 
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];  
    if (error) NSLog(@"Unable to configure Audio"); 
Cuestiones relacionadas