SDK para iOS de la API de Video de Vonage

El SDK para iOS de la Video API de Vonage te permite utilizar sesiones de vídeo basadas en la Video API de Vonage en las aplicaciones que desarrolles para dispositivos iPad, iPhone e iPod touch.

Todas las aplicaciones que utilizan la Video API de Vonage constan de dos partes:

  • El lado del cliente, que utiliza el SDK de cliente de OpenTok y se ejecuta en el navegador o la aplicación móvil del usuario
  • El lado del servidor, que utiliza el SDK de servidor de OpenTok y se ejecuta en tu servidor para enviar la información de autenticación al cliente.

El Client SDK para desarrollar aplicaciones para iOS es el SDK de OpenTok para iOS, que proporciona la mayor parte de las funciones básicas para tu aplicación, entre las que se incluyen:

  • Conectarse a una sesión de OpenTok
  • Publicación de flujos en una sesión
  • Suscripción a flujos en una sesión

También hay SDK de cliente disponibles para web, Android, iOS, Windows, macOS, Linux y React. Todos los SDK de cliente de OpenTok pueden interactuar entre sí.

Puedes obtener más información sobre los conceptos básicos de los clientes, servidores y sesiones de OpenTok, entre otros, en la Conceptos básicos de la Video API página.

Notas importantes

  • La versión 2.35.1+ del SDK solo es compatible con iOS 17 o superior.
  • La versión 2.35.1+ es compatible con Swift Package Manager. La distribución de CocoaPods ha quedado obsoleta y se eliminará en una futura versión.
  • La versión 2.33.0+ del SDK es compatible con los Mac con Apple Silicon que ejecuten macOS 14 o una versión posterior. Consulta la sección de soporte técnico de macOS que figura a continuación para conocer las consideraciones y limitaciones específicas de la plataforma.
  • Compartir pantalla en macOS se limita a la propia ventana de la aplicación — No se admite la captura completa del escritorio. Consulta este problema conocido Para más información.
  • Cambios en la red de iOS 14 que afectan a las sesiones retransmitidas - consulte la lista de problemas conocidos en las notas de la versión.
  • Problemas al utilizar el Simulador para previsualizar tu aplicación en un Mac con chip M1 - consulte la lista de problemas conocidos en las notas de la versión.

Interoperabilidad

Las aplicaciones desarrolladas con el SDK de OpenTok para iOS 2.35.1 pueden interoperar con las aplicaciones de OpenTok desarrolladas con la versión 2.33 o posterior de los Client SDK de OpenTok:

  • OpenTok.js
  • SDK de OpenTok para Android
  • SDK de OpenTok para iOS
  • SDK de OpenTok para Windows
  • SDK de OpenTok para macOS
  • SDK de OpenTok para Linux
  • SDK React Native de OpenTok

Instalación

El SDK de Vonage Video para iOS es compatible con Swift Package Manager (SPM) como método de distribución recomendado, disponible desde la versión 2.35.1. La distribución de CocoaPods a través de la OTXCFramework El pod también se mantiene para garantizar la compatibilidad con versiones anteriores, aunque la compatibilidad con CocoaPods sigue estando disponible; sin embargo, se está dejando de utilizar y, con el tiempo, se eliminará.

Recomendación: Los nuevos proyectos deben utilizar Swift Package Manager. Si actualmente utilizas CocoaPods, consulta el Migración desde CocoaPods sección siguiente.

Swift Package Manager (recomendado)

Swift Package Manager está integrado directamente en Xcode y no requiere herramientas adicionales.

En Xcode:

  1. Abre tu proyecto en Xcode.
  2. Ir a Archivo > Añadir dependencias de paquetes…
  3. Introduce la siguiente URL del repositorio en la barra de búsqueda: https://github.com/opentok/opentok-ios-sdk.git
  4. Selecciona la regla de versión (p. ej., Hasta el próximo gran torneo) y haz clic en Añadir paquete.
  5. Selecciona el OpenTokClientSDKVideo biblioteca y haz clic en Añadir a la lista de Target.

Las dependencias de SPM se resuelven y se descargan automáticamente al compilar o abrir el proyecto en Xcode. Puedes verlas en la sección Dependencias de los paquetes sección del Navegador de proyectos.

CocoaPods (en desuso)

⚠️ Aviso de obsolescencia: La distribución de CocoaPods va a quedar obsoleta. El OTXCFramework pod seguirá manteniéndose mientras CocoaPods ofrezca soporte, pero recomendamos encarecidamente migrar a Swift Package Manager.

Añade lo siguiente a tu Podfile:

target 'YourApp' do
pod 'OTXCFramework'
end

A continuación, ejecuta:

pod install

Abre el archivo generado .xcworkspace archivo (no .xcodeproj) para compilar tu proyecto.

Migración desde CocoaPods

Si tu proyecto utiliza actualmente el OTXCFramework Si utilizas CocoaPods, sigue estos pasos para migrar a Swift Package Manager:

  1. Elimina CocoaPods de tu proyecto:
pod deintegrate

Esto elimina todas las fases de compilación y la configuración de CocoaPods de tu .xcodeproj.

  1. Eliminar los archivos de CocoaPods: Eliminar Podfile, Podfile.lock, y el Pods/ directorio de la carpeta de tu proyecto. Elimina también el archivo generado por CocoaPods .xcworkspace si ya no lo necesitas.

  2. Añade el SDK mediante SPM: Sigue las Gestor de paquetes Swift Sigue las instrucciones anteriores para añadir https://github.com/opentok/opentok-ios-sdk.git como dependencia del paquete.

  3. Actualiza tus importaciones: Si estuvieras importando OpenTok, el nombre del módulo sigue siendo el mismo; no es necesario realizar ningún cambio en las importaciones.

  4. Compilar y verificar: Abre tu .xcodeproj directamente en Xcode (sin .xcworkspace necesarios para los proyectos que solo utilizan SPM) y compilar para comprobar que todo se resuelve correctamente.

Requisitos del sistema

La versión actual del SDK de OpenTok para iOS (2.35.1+) es compatible con iOS 17 o superior.

El SDK de OpenTok para iOS es compatible con conexiones Wi-Fi, 4G/LTE y 5G.

El SDK de OpenTok para iOS requiere Xcode 7 o una versión posterior.

Para disfrutar de una transmisión de vídeo fluida, asegúrate de que tu dispositivo cumpla con estas especificaciones recomendadas:

  • CPU: Apple A12 Bionic o superior.
  • RAM: Al menos 4 GB de RAM para llamadas en grupo y multitarea.
  • Pantalla: 5,4"+ para iPhone, 10,2"+ para iPad.
  • Capacidad de la batería: 3000+ mAh para iPhone, 7000+ mAh para iPad.
  • Red: Conectividad fiable a Internet; funciona por Wi-Fi o móvil.

Estas recomendaciones garantizan una reproducción estable, un menor consumo de CPU y un rendimiento fluido al reproducir vídeo en streaming.

Ejemplos de dispositivos: iPhone XS o posterior (2018+), iPad Pro (cualquier generación), iPad Air 3 o posterior, iPad mini 5 o posterior.

Aprender a construir

La mejor forma de aprender a utilizar el SDK de OpenTok para iOS es seguir el tutorial «OpenTok Basic Video Chat»:

Empezar el tutorial

Una vez que hayas comprendido los conceptos básicos para desarrollar con el SDK de OpenTok para iOS, podrás obtener información más detallada y aprender a personalizar tu aplicación con OpenTok guías para desarrolladores. Para investigar clases y métodos específicos de la API, consulte la sección Referencia de la API del SDK de OpenTok para iOS.

Uso del SDK

El directorio OpenTok.framework contiene el SDK de OpenTok para iOS.

El SDK de OpenTok para iOS requiere los siguientes marcos y bibliotecas:

  • AudioToolbox.framework
  • AVFoundation.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • CoreTelephony.framework
  • CoreVideo.framework
  • Foundation.framework
  • GLKit.framework
  • libc++.dylib (libc++.tbd en Xcode 7 y versiones posteriores)
  • libsqlite3.dylib (libsqlite3++.tbd en Xcode 7 y versiones posteriores)
  • Metal.framework
  • MetalKit.framework
  • MetalPerformanceShaders.framework
  • OpenGLES.framework
  • QuartzCore.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • VideoToolbox.framework

El SDK de OpenTok para iOS se vincula a la biblioteca estándar libc++. Si otra biblioteca que se vincula a la biblioteca estándar libc++ se ha compilado en una versión de Xcode anterior a la 6.0.0, puede provocar errores de segmentación (segfaults) en tiempo de ejecución al utilizarla con el SDK de OpenTok para iOS. Entre las bibliotecas incompatibles conocidas se incluyen, entre otras, Firebase (versiones anteriores a la 2.1.2; véase https://code.google.com/p/webrtc/issues/detail?id=3992) y Google Maps (versiones anteriores a la 1.9.0). Para solucionar este problema, descarga una versión de la otra biblioteca que se haya compilado con XCode 6.0.0 o posterior.

Si utiliza una versión de Xcode anterior a la 7.2.0, no utilice la opción -all_load opción del enlazador. En su lugar, utiliza la -force_load opción del enlazador para cargar bibliotecas específicas que lo requieran.

Para poder acceder a la cámara y al micrófono, iOS 10 requiere que establezcas valores para los parámetros NSCameraUsageDescription y NSMicrophoneUsageDescription claves del archivo Info.plist. Estas definen las cadenas de texto que aparecen en el instalador de la aplicación para informar al usuario de por qué tu aplicación utiliza la cámara y el micrófono. Para obtener más información, consulta la documentación de Apple sobre las teclas Cocoa.

Véase este contenido para obtener información sobre el uso del SDK en aplicaciones que se ejecutan en segundo plano.

Asistencia técnica para macOS

El SDK de OpenTok para iOS 2.33.0+ es compatible con los Mac con Apple Silicon (M1, M2, M3 y posteriores) que ejecuten macOS 14 o una versión posterior. En macOS, el SDK ofrece la mayoría de las mismas funciones disponibles en los dispositivos iOS, aunque hay algunas diferencias y limitaciones específicas de la plataforma que hay que tener en cuenta.

Comportamiento de la cámara en macOS

Los dispositivos macOS suelen tener una única cámara integrada (la cámara de FaceTime), que siempre se asigna como cámara frontal (AVCaptureDevicePositionFront). Las cámaras externas conectadas al Mac también se consideran cámaras frontales.

Aspectos importantes a tener en cuenta:

  • A diferencia de los dispositivos iOS, los Mac no cuentan con el concepto de «cámara trasera».
  • El cameraPosition la propiedad siempre se resolverá a la cámara frontal en macOS
  • Para alternar entre varias cámaras (por ejemplo, la integrada y la externa) en macOS, puedes implementar un capturador de vídeo personalizado. Para obtener más información, consulta esta documentación.

Manejo de la rotación

Advertencia: Los dispositivos macOS no admiten la rotación automática de la orientación, a diferencia de los dispositivos móviles iOS.

  • El vídeo se publica siempre en orientación horizontal
  • Los eventos de rotación del dispositivo no se producen en macOS
  • Applications deben manejar la orientación manualmente si se necesitan ajustes específicos de diseño

Limitación de la linterna

Advertencia: La función de linterna de la cámara no está disponible en macOS.

  • Ajuste del cameraTorch propiedad a YES no tendrá ningún efecto en macOS
  • Las cámaras del Mac (integradas o externas) no admiten la función de linterna.
  • Esta función es exclusiva de los dispositivos móviles con iOS

Muestras de código

Para ver ejemplos de código, visite nuestra página Repositorio «vonage-video-ios-sdk-samples» en GitHub.

Documentación y más información

La documentación de referencia se incluye en el subdirectorio «doc» del SDK y en el Referencia del SDK local.

Para consultar la lista de nuevas funciones y problemas conocidos, consulta el notas de la versión.