2011-04-29 13 views
7

Estoy buscando una forma de que mi aplicación reproduzca un sonido en un momento específico mientras está en segundo plano (multitarea IOS4). Actualmente, utilizo notificaciones locales por aquello que funciona bastante bien, excepto por:Reproducir sonido en un momento específico mientras la aplicación está en segundo plano

  • no se reproducirá el sonido si el teléfono está silenciado
  • el límite de 30 segundos de reproducción

vi que hay setKeepAliveTimeout: handler: pero solo está disponible para aplicaciones de voip y dado que ese no es el propósito de mi aplicación, supongo que Apple lo rechazará por eso. También vi una solución donde se está reproduciendo un sonido "vacío" hasta que se ha alcanzado el tiempo, pero, ignorando que no es una forma muy elegante, de todos modos, he leído que esto también puede hacer que se rechace la aplicación.

Dado que hay algunas aplicaciones de despertador que hacen exactamente lo que estoy buscando, me pregunto cómo implementaron esta funcionalidad.

Gracias por cualquier pista con anticipación!

+0

Sé que esta publicación es antigua, pero estoy enfrentando el mismo problema que usted. ¿Encontraste alguna solución para esto? –

+0

Desafortunadamente no, no lo hice. – codenapper

Respuesta

2

Si busca una solución que sea aprobada por Apple, tiene razón, no puede usar el setKeepAliveTimeout:handler y, aunque pudiera, no puede establecer el tiempo de espera en algo que sea inferior a 600 segundos, por lo que Supongo que no será de gran utilidad de todos modos (además de que no está garantizado que el evento se dispare ni remotamente cerca del tiempo de espera que especificó. Por ejemplo, lo configuré en 600 segundos y algunos eventos se activaron tan pronto como 360 segundos ...)

Acerca de la reproducción del sonido en silencio, excepto los desechos de la batería, si está aplicación tiene un uso legítimo para el fondo de audio (si va a implementar un reloj despertador, eso es bastante obvio), no veo una razón para su aplicación será rechazada, siempre y cuando no intente utilizar otras funciones de fondo (señal de GPS, manejadores de VoIP, etc.).

He aquí una aplicación de ejemplo que utiliza esta "característica" para su beneficio: http://tapbots.com/blog/pastebot/pastebot-music-in-background

Acerca de otros métodos, se puede ver en esta discusión: How do I start playing audio when in silent mode & locked in iOS 6?

En una nota personal, no es muy fácil para hacer frente a las políticas de fondo de Apple. Mi empresa y yo tuvimos (¿tengo?) Un momento difícil solo para mantener una conexión VoIP simple debido a todas las limitaciones. Mi mejor consejo es tratar de hacer lo menos posible en el fondo como sea posible. Si la solución UILocalNotificaion le conviene, probablemente deba apegarse a ella y vivir con las limitaciones.

Cuestiones relacionadas