SDK de Android para la Video API de Vonage

El SDK para Android de la API de video de Vonage te permite usar sesiones de video impulsadas por la API de video de Vonage en aplicaciones que crees para dispositivos Android.

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 en 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 de Android es el SDK de OpenTok para Android, 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 disponibles SDK de cliente para web, 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

  • El SDK de Android 2.35.1+ es compatible con Android 17 (nivel de API 37). Esta actualización no requiere ningún permiso nuevo.

  • Android SDK 2.30.0+ admite dispositivos con tamaños de página de 4 KB y 16 KB.

  • El SDK de Android 2.29.1+ requiere el ACCESS_NETWORK_STATE y en Android API nivel 35+ también requiere el permiso REQUEST_IGNORE_BATTERY_OPTIMIZATIONS autorización. Echa un vistazo a la lista completa de permisos necesarios.

  • El SDK de Android 2.28.0+ requiere un nivel mínimo de API de Android de 24.

  • Los SDK de Android 2.24.3+, 2.25.4+ y 2.26.0+ requieren un nivel mínimo de API de Android de 23.

  • El SDK de Android 2.24.0 y versiones posteriores ya no son compatibles con las arquitecturas x86 de 32 bits.

  • Las aplicaciones dirigidas al nivel de API 31 o superior ahora requieren un permiso READ_PHONE_STATE. Consulte la lista completa de permisos necesarios.

Interoperabilidad

Las aplicaciones desarrolladas con el SDK de OpenTok para Android 2.35.1 pueden interoperar con 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

La versión Maven está disponible en https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. El ID del artefacto es "opentok-android-sdk". Modifica tu aplicación para descargar el SDK de OpenTok para Android desde https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. Por ejemplo:

  1. Edita el archivo build.gradle de tu proyecto y añade el siguiente fragmento de código al allprojects/repositories sección:

    mavenCentral()
    
  2. Modifique el archivo build.gradle de la aplicación y añada el siguiente fragmento de código al archivo dependencies sección:

    implementation 'com.opentok.android:opentok-android-sdk:2.35.1'
    
  3. Modifique el archivo build.gradle de la aplicación y añada el siguiente fragmento de código al archivo android sección:

    Para el SDK de Android superior a la versión 2.28.1:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    

    Para el SDK de Android entre las versiones 2.22.0 y 2.28.1:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    

    Para el SDK de Android anterior a la versión 2.22.0:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

Tu aplicación debe utilizar un ID de sesión y un token generados con tu clave de API de OpenTok, que puedes obtener iniciando sesión en tu Cuenta API de Video de Vonage.

A efectos de prueba, puedes generar un ID de sesión y un token iniciando sesión en tu Cuenta API de Video de Vonage. En el caso de una aplicación de producción, genera tokens únicos (e ID de sesión, si necesitas admitir varias sesiones) utilizando el Bibliotecas de OpenTok para el lado del servidor.

Requisitos del sistema

Para una transmisión de vídeo fiable, asegúrate de que tu dispositivo Android cumple estas especificaciones recomendadas:

  • CPU: Un procesador reciente de doble núcleo; ARM64 (ARMv8) Quad-core o superior a 2,0 GHz+ (por ejemplo, Qualcomm Snapdragon serie 600+, Samsung Exynos serie 7 o superior, Google Tensor (dispositivos Pixel)).
  • GPU: Adreno serie 500+ (Qualcomm), Mali-G71+ (ARM); para codificación/decodificación de vídeo acelerada por hardware.
  • RAM: Al menos 6 GB de RAM para llamadas en grupo y multitarea.
  • Pantalla: 5"+ para una mejor experiencia de usuario.
  • Capacidad de la batería: 3000+ mAh para videollamadas prolongadas.
  • 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 por categoría: el Samsung Galaxy A12, el Moto G Play y el Nokia G10 son de gama básica; el Google Pixel 6a, el Samsung Galaxy A52/A53 y el OnePlus Nord pertenecen a la gama media; y el Samsung Galaxy S23/S24, el Google Pixel 8 Pro y el OnePlus 11 pertenecen a la gama alta.

Aprender a construir

La mejor forma de aprender a utilizar el SDK de OpenTok para Android es seguir las instrucciones de OpenTok Tutorial básico sobre el chat de vídeo.

Una vez que hayas comprendido los conceptos básicos para desarrollar con el SDK de OpenTok para Android, 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 Android.

Requisitos del desarrollador y del cliente

El SDK de OpenTok para Android admite una transmisión de audio y vídeo publicada, una transmisión de audio y vídeo suscrita y hasta cinco transmisiones adicionales suscritas de solo audio de forma simultánea. Para conectar más de dos clientes en una sesión utilizando el SDK de OpenTok para Android, crea una sesión que utilice el OpenTok Media Router (una sesión con el modo multimedia configurado en «routed»). Véase El OpenTok Media Router y los modos multimedia.

El SDK es compatible con redes Wi-Fi de alta velocidad y 4G LTE.

El SDK de OpenTok para Android es compatible con las arquitecturas armeabi-v7a, arm64-v8a y x86_64.

El SDK es compatible con dispositivos con un tamaño de página de 4 KB y de 16 KB a partir de la versión 2.30.0. Esto garantiza el correcto funcionamiento, mejora la compatibilidad y evita los fallos del sistema. Para obtener más información, consulta esta documentación de Android en tamaños de página.

El SDK de OpenTok para Android funciona con cualquier dispositivo Android 7.0 o superior (Nougat, nivel de API 24) que cuente con una cámara (para transmitir vídeo) y una CPU y memoria adecuadas.

Permisos

El SDK de OpenTok para Android utiliza los siguientes permisos:

  • android.permission.ACCESS_NETWORK_STATE -- El SDK de OpenTok para Android requiere este permiso a partir de la versión 2.29.1.

  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS -- El SDK de OpenTok para Android requiere este permiso a partir de la versión 2.29.1 en el nivel de API 35 y superiores.

  • android.permission.BLUETOOTH_CONNECT -- Es necesario habilitarlo para el nivel de API 31 y superiores. Si desea utilizar el dispositivo Bluetooth con Android SDK DefaultAudioDevice orientado al nivel de API 31 y superior, solicite permisos de tiempo de ejecución en la aplicación o habilite el permiso ("Dispositivos cercanos/Bluetooth") manualmente en la configuración de la aplicación.

  • android.permission.READ_PHONE_STATE -- El SDK de OpenTok para Android solicita este permiso en el nivel de API 22 y anteriores, y en el 31 y posteriores.

  • android.permission.CAMERA -- Si tu aplicación no utiliza el capturador de vídeo predeterminado y no accede a la cámara, puedes eliminar este permiso.

  • android.permission.INTERNET -- Requerido.

  • android.permission.RECORD_AUDIO -- Si tu aplicación no utiliza el dispositivo de audio predeterminado y no accede al micrófono, puedes eliminar este permiso.

  • android.permission.MODIFY_AUDIO_SETTINGS -- Si tu aplicación no utiliza el dispositivo de audio predeterminado y no accede al micrófono, puedes eliminar este permiso.

  • android.permission.BLUETOOTH -- El dispositivo de audio predeterminado es compatible con el audio por Bluetooth. Si tu aplicación no utiliza el dispositivo de audio predeterminado ni utiliza Bluetooth, puedes eliminar este permiso.

  • android.permission.BROADCAST_STICKY -- Hemos comprobado que el SDK de OpenTok para Android no utiliza este permiso, por lo que lo eliminaremos en una próxima versión.

  • android.permission.ACCESS_LOCAL_NETWORK -- No es necesario. Android 17 (API 37) introdujo este permiso para restringir el acceso a las API de alto nivel de detección de redes locales. El SDK de Vonage Video para Android utiliza sockets UDP/TCP sin procesar para la negociación ICE de WebRTC, los cuales no están sujetos a este permiso. Las conexiones P2P y los candidatos ICE de la red local funcionan correctamente en Android 17 sin necesidad de este permiso.

No es necesario que los añadas al manifiesto de tu aplicación. El SDK de OpenTok para Android los añade automáticamente. Sin embargo, en el nivel de API 21 y superiores, algunos permisos requieren que se solicite autorización al usuario.

Tu aplicación puede eliminar cualquiera de estos permisos que no sean necesarios. Consulte esta entrada y esta documentación de Android. Por ejemplo, esto elimina el android.permission.CAMERA autorización:

<uses-permission android:name="android.permission.CAMERA" tools:node="remove"/>

Normas ProGuard

La configuración recomendada de ProGuard es:

-keeppackagenames
-keep class com.opentok.** { *; }
-keep class com.vonage.** { *; }

Al utilizar Android Studio 3.4 o el complemento de Gradle para Android 3.4.0 o superior, la compresión, la ofuscación y la optimización se activan automáticamente de forma predeterminada.

No se recomienda reducir el tamaño ni ofuscar el SDK de OpenTok para Android.

La configuración anterior obliga a conservar el código fuente del SDK de OpenTok para Android, sin impedir que se reduzca el tamaño del resto de la aplicación.

Conserva los nombres de los paquetes del SDK de OpenTok para Android con el parámetro -keeppackagenames para evitar conflictos con otras bibliotecas.

El compilador realiza automáticamente una serie de optimizaciones de forma predeterminada. No se recomienda aplicar ninguna otra optimización, pero es posible habilitar optimizaciones adicionales, lo que puede requerir incluir reglas adicionales de ProGuard para evitar problemas en tiempo de ejecución, añadiendo lo siguiente en el archivo gradle.properties del proyecto:

android.enableR8.fullMode=true

No se recomienda minificar el SDK de OpenTok para Android. La compresión y ofuscación del SDK de OpenTok para Android con la optimización anterior generarán advertencias. Estas deben desactivarse.

# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE

Véase esta documentación de Android para comprender mejor las reglas generales de ProGuard y sus funcionalidades.

Muestras de código

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

Documentación y más información

Véase el Referencia de la API del SDK de OpenTok para Android y el Guías para desarrolladores de OpenTok.

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