Estado de fondo
iOS admite la multitarea para todas las aplicaciones; sin embargo, hay algunos pasos que un desarrollador debe seguir para que el SDK de Vonage Video para iOS funcione bien con diferentes estados de aplicaciones. Este documento cubre un conjunto de prácticas que hemos descubierto que funcionan bien con la mayoría de las aplicaciones de Vonage Video. Sin embargo, no sustituye la lectura del Documentación de Apple sobre el tema - específicamente las secciones sobre "Estrategias para manejar las transiciones de estado de la aplicación", "Ejecución en segundo plano" y "Consejos para desarrollar una aplicación VoIP". Aunque Apple no considera que la mayoría de las aplicaciones de Vonage Video sean aplicaciones de VoIP, el contenido sobre la configuración de sesiones de audio y la configuración de sockets es relevante y útil para comprender este documento.
Guía de inicio rápido: configuración de los permisos de la aplicación
Para que la aplicación siga grabando audio en segundo plano, selecciona el objetivo de la aplicación en Xcode y selecciona el Signing & Capabilities ficha. A continuación, haga clic en el botón + Capacidad y añada la capacidad Modos de fondo al proyecto. A continuación, seleccione la opción Audio, Airplay, and Picture in Picture opción. Esta configuración también evitará que la aplicación pase a un estado de suspensión mientras se reproduce y graba audio en segundo plano.
Si su aplicación necesita notificaciones push de alta prioridad que despierten la aplicación para las llamadas entrantes, utilizando la interfaz de usuario nativa de la aplicación de teléfono, o recibir notificaciones sobre eventos de retención, seleccione la opción Voice over IP funcionalidad en XCode.
Lo que Vonage Video puede (y no puede) hacer en segundo plano
Con el SDK, una aplicación puede Realiza cada una de las siguientes acciones mientras te encuentres en el estado de fondo:
- Mantener una sesión activa.
- Mantén una sesión sólo de audio.
- Establecer indicadores de audio y vídeo para emisores y receptores. Por ejemplo, al establecer el
OTPublisher.publishAudiopropiedad aYESestá permitido. - Publica utilizando una implementación de captura de vídeo personalizada que no utilice la cámara (por ejemplo, publicando desde un archivo o una fuente de vídeo sintetizado).
Una aplicación puede reanudar el uso de la cámara en cuanto vuelva al estado activo.
Sin embargo, las aplicaciones no puede Haz lo siguiente mientras estés en segundo plano:
- Utiliza la cámara como fuente de vídeo para un editor.
- Configurar nuevas vistas con vídeo de streams.
- Mantén activa la sesión de audio si recibes una llamada telefónica o por FaceTime.
- Evita que otras apps adquieran recursos de audio del sistema.
- Mantener una conexión con una sesión sin un emisor ni un suscriptor activos.
Sesiones activas en segundo plano
La configuración descrita anteriormente permite que las aplicaciones mantengan una sesión activa incluso cuando la aplicación se encuentra en segundo plano, probablemente porque el usuario final ha pulsado el botón de inicio, ha bloqueado la pantalla o ha abierto contenido de una URL en otro proceso. El audio Este permiso permite que el proceso de la aplicación permanezca activo mientras está en segundo plano, si hay una sesión de audio activa. Esto significa que la captura y la reproducción de audio pueden continuar en tu sesión, siempre y cuando ningún otro proceso solicite recursos de audio.
Cuando está correctamente configurado, iOS proporciona un indicador de que tu app se está ejecutando en segundo plano con una sesión de audio activa. Esto se ve como un fondo rojo de la barra de estado, así como una barra adicional que indica el nombre de la app que mantiene la sesión de audio activa, en este caso, tu app.

El Voice over IP Esta funcionalidad está pensada para mantener conexiones de señalización de larga duración con un servidor de aplicaciones.
Si selecciona la opción Voice over IP Si seleccionas esta opción en la sección «Capacidades» de Xcode, tu aplicación debe implementar funciones que justifiquen dicha capacidad; de lo contrario, es posible que la revisión de la App Store rechace tu aplicación. Esta capacidad no debe utilizarse para mantener la aplicación en ejecución en segundo plano por motivos ajenos a las comunicaciones de audio o vídeo.
Si su aplicación necesita recibir notificaciones de eventos de aplicación, le recomendamos que utilice Notificaciones push de Apple con tu servidor de aplicaciones para activar la aplicación y ejecutar un flujo de trabajo. Si tu aplicación admite llamadas entrantes, te recomendamos que utilices el Notificaciones push de VoIP.
Perder el control
Las llamadas entrantes de teléfono y FaceTime son probablemente los primeros eventos que verás que interrumpen completamente tu aplicación. Cuando esto ocurra, tu app se suspenderá, independientemente de si hay una sesión de audio activa.
Si tu aplicación se suspende porque la sesión de audio ha cedido el control a otro proceso, no es necesario aplicar ninguna lógica adicional para gestionar esta situación. Si la aplicación permanece suspendida durante un periodo prolongado, la conexión a la sesión se interrumpirá. Los demás clientes conectados a la sesión recibirán connectionDestroyed para la conexión del dispositivo, y una eventual limpieza será necesaria una vez que la aplicación no esté suspendida. Mientras tu controlador esté procesando los eventos de error y de delegado desconectado para la sesión, esto no debería ser diferente de un flujo de trabajo de desconexión voluntaria, o de cualquier otro. Los clientes pueden volver a conectarse tan pronto como se procese la limpieza de desconexión.